function DownloadManager::getDownloaderForPackage
Returns downloader for already installed package.
Parameters
PackageInterface $package package instance:
Throws
\InvalidArgumentException if package has no installation source specified
\LogicException if specific downloader used to load package with wrong type
6 calls to DownloadManager::getDownloaderForPackage()
- DownloadManager::cleanup in vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php - Cleans up a failed operation
- DownloadManager::download in vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php - Downloads package into target dir.
- DownloadManager::install in vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php - Installs package into target dir.
- DownloadManager::prepare in vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php - Prepares an operation execution
- DownloadManager::remove in vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php - Removes package from target dir.
File
-
vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloadManager.php, line 135
Class
- DownloadManager
- Downloaders manager.
Namespace
Composer\DownloaderCode
public function getDownloaderForPackage(PackageInterface $package) : ?DownloaderInterface {
$installationSource = $package->getInstallationSource();
if ('metapackage' === $package->getType()) {
return null;
}
if ('dist' === $installationSource) {
$downloader = $this->getDownloader($package->getDistType());
}
elseif ('source' === $installationSource) {
$downloader = $this->getDownloader($package->getSourceType());
}
else {
throw new \InvalidArgumentException('Package ' . $package . ' does not have an installation source set');
}
if ($installationSource !== $downloader->getInstallationSource()) {
throw new \LogicException(sprintf('Downloader "%s" is a %s type downloader and can not be used to download %s for package %s', get_class($downloader), $downloader->getInstallationSource(), $installationSource, $package));
}
return $downloader;
}