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

Breadcrumb

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

function PoolBuilder::loadPackagesMarkedForLoading

Parameters

RepositoryInterface[] $repositories:

1 call to PoolBuilder::loadPackagesMarkedForLoading()
PoolBuilder::buildPool in vendor/composer/composer/src/Composer/DependencyResolver/PoolBuilder.php

File

vendor/composer/composer/src/Composer/DependencyResolver/PoolBuilder.php, line 406

Class

PoolBuilder
@author Nils Adermann <naderman@naderman.de>

Namespace

Composer\DependencyResolver

Code

private function loadPackagesMarkedForLoading(Request $request, array $repositories) : void {
    foreach ($this->packagesToLoad as $name => $constraint) {
        if ($this->restrictedPackagesList !== null && !isset($this->restrictedPackagesList[$name])) {
            unset($this->packagesToLoad[$name]);
            continue;
        }
        $this->loadedPackages[$name] = $constraint;
    }
    $packageBatch = $this->packagesToLoad;
    $this->packagesToLoad = [];
    foreach ($repositories as $repoIndex => $repository) {
        if (0 === \count($packageBatch)) {
            break;
        }
        // these repos have their packages fixed or locked if they need to be loaded so we
        // never need to load anything else from them
        if ($repository instanceof PlatformRepository || $repository === $request->getLockedRepository()) {
            continue;
        }
        $result = $repository->loadPackages($packageBatch, $this->acceptableStabilities, $this->stabilityFlags, $this->loadedPerRepo[$repoIndex] ?? []);
        foreach ($result['namesFound'] as $name) {
            // avoid loading the same package again from other repositories once it has been found
            unset($packageBatch[$name]);
        }
        foreach ($result['packages'] as $package) {
            $this->loadedPerRepo[$repoIndex][$package->getName()][$package->getVersion()] = $package;
            if (in_array($package->getType(), $this->ignoredTypes, true) || $this->allowedTypes !== null && !in_array($package->getType(), $this->allowedTypes, true)) {
                continue;
            }
            $this->loadPackage($request, $repositories, $package, !isset($this->pathRepoUnlocked[$package->getName()]));
        }
    }
}

API Navigation

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