Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. DownloadManager.php

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.

... See full list

File

vendor/composer/composer/src/Composer/Downloader/DownloadManager.php, line 135

Class

DownloadManager
Downloaders manager.

Namespace

Composer\Downloader

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal