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

Breadcrumb

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

function Installer::createRequest

Parameters

RootPackageInterface&BasePackage $rootPackage:

3 calls to Installer::createRequest()
Installer::doInstall in vendor/composer/composer/src/Composer/Installer.php
@phpstan-return self::ERROR_*
Installer::doUpdate in vendor/composer/composer/src/Composer/Installer.php
@phpstan-return self::ERROR_*
Installer::extractDevPackages in vendor/composer/composer/src/Composer/Installer.php
Run the solver a second time on top of the existing update result with only the current result set in the pool and see what packages would get removed if we only had the non-dev packages in the solver request

File

vendor/composer/composer/src/Composer/Installer.php, line 976

Class

Installer
@author Jordi Boggiano <j.boggiano@seld.be> @author Beau Simensen <beau@dflydev.com> @author Konstantin Kudryashov <ever.zet@gmail.com> @author Nils Adermann <naderman@naderman.de>

Namespace

Composer

Code

private function createRequest(RootPackageInterface $rootPackage, PlatformRepository $platformRepo, ?LockArrayRepository $lockedRepository = null) : Request {
    $request = new Request($lockedRepository);
    $request->fixPackage($rootPackage);
    if ($rootPackage instanceof RootAliasPackage) {
        $request->fixPackage($rootPackage->getAliasOf());
    }
    $fixedPackages = $platformRepo->getPackages();
    if ($this->additionalFixedRepository) {
        $fixedPackages = array_merge($fixedPackages, $this->additionalFixedRepository
            ->getPackages());
    }
    // fix the version of all platform packages + additionally installed packages
    // to prevent the solver trying to remove or update those
    // TODO why not replaces?
    $provided = $rootPackage->getProvides();
    foreach ($fixedPackages as $package) {
        // skip platform packages that are provided by the root package
        if ($package->getRepository() !== $platformRepo || !isset($provided[$package->getName()]) || !$provided[$package->getName()]
            ->getConstraint()
            ->matches(new Constraint('=', $package->getVersion()))) {
            $request->fixPackage($package);
        }
    }
    return $request;
}

API Navigation

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