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