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

Breadcrumb

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

function ComposerRepository::getPackages

Overrides ArrayRepository::getPackages

1 call to ComposerRepository::getPackages()
ComposerRepository::getPackageNames in vendor/composer/composer/src/Composer/Repository/ComposerRepository.php

File

vendor/composer/composer/src/Composer/Repository/ComposerRepository.php, line 323

Class

ComposerRepository
@author Jordi Boggiano <j.boggiano@seld.be>

Namespace

Composer\Repository

Code

public function getPackages() {
    $hasProviders = $this->hasProviders();
    if ($this->lazyProvidersUrl) {
        if (is_array($this->availablePackages) && !$this->availablePackagePatterns) {
            $packageMap = [];
            foreach ($this->availablePackages as $name) {
                $packageMap[$name] = new MatchAllConstraint();
            }
            $result = $this->loadAsyncPackages($packageMap);
            return array_values($result['packages']);
        }
        if ($this->hasPartialPackages()) {
            if (!is_array($this->partialPackagesByName)) {
                throw new \LogicException('hasPartialPackages failed to initialize $this->partialPackagesByName');
            }
            return $this->createPackages($this->partialPackagesByName, 'packages.json inline packages');
        }
        throw new \LogicException('Composer repositories that have lazy providers and no available-packages list can not load the complete list of packages, use getPackageNames instead.');
    }
    if ($hasProviders) {
        throw new \LogicException('Composer repositories that have providers can not load the complete list of packages, use getPackageNames instead.');
    }
    return parent::getPackages();
}
RSS feed
Powered by Drupal