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

Breadcrumb

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

function Installer::createPolicy

2 calls to Installer::createPolicy()
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_*

File

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

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 createPolicy(bool $forUpdate, ?LockArrayRepository $lockedRepo = null) : DefaultPolicy {
    $preferStable = null;
    $preferLowest = null;
    if (!$forUpdate) {
        $preferStable = $this->locker
            ->getPreferStable();
        $preferLowest = $this->locker
            ->getPreferLowest();
    }
    // old lock file without prefer stable/lowest will return null
    // so in this case we use the composer.json info
    if (null === $preferStable) {
        $preferStable = $this->preferStable || $this->package
            ->getPreferStable();
    }
    if (null === $preferLowest) {
        $preferLowest = $this->preferLowest;
    }
    $preferredVersions = null;
    if ($forUpdate && $this->minimalUpdate && $this->updateAllowList !== null && $lockedRepo !== null) {
        $preferredVersions = [];
        foreach ($lockedRepo->getPackages() as $pkg) {
            if ($pkg instanceof AliasPackage || in_array($pkg->getName(), $this->updateAllowList, true)) {
                continue;
            }
            $preferredVersions[$pkg->getName()] = $pkg->getVersion();
        }
    }
    return new DefaultPolicy($preferStable, $preferLowest, $preferredVersions);
}

API Navigation

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