function ArrayLoader::configureCachedLinks
Parameters
array<string, array<string, array<int|string, array<int|string, array{string, Link}>>>> $linkCache:
mixed[] $config:
1 call to ArrayLoader::configureCachedLinks()
- ArrayLoader::loadPackages in vendor/
composer/ composer/ src/ Composer/ Package/ Loader/ ArrayLoader.php
File
-
vendor/
composer/ composer/ src/ Composer/ Package/ Loader/ ArrayLoader.php, line 323
Class
- ArrayLoader
- @author Konstantin Kudryashiv <ever.zet@gmail.com> @author Jordi Boggiano <j.boggiano@seld.be>
Namespace
Composer\Package\LoaderCode
private function configureCachedLinks(array &$linkCache, PackageInterface $package, array $config) : void {
$name = $package->getName();
$prettyVersion = $package->getPrettyVersion();
foreach (BasePackage::$supportedLinkTypes as $type => $opts) {
if (isset($config[$type])) {
$method = 'set' . ucfirst($opts['method']);
$links = [];
foreach ($config[$type] as $prettyTarget => $constraint) {
$target = strtolower($prettyTarget);
// recursive links are not supported
if ($target === $name) {
continue;
}
if ($constraint === 'self.version') {
$links[$target] = $this->createLink($name, $prettyVersion, $opts['method'], $target, $constraint);
}
else {
if (!isset($linkCache[$name][$type][$target][$constraint])) {
$linkCache[$name][$type][$target][$constraint] = [
$target,
$this->createLink($name, $prettyVersion, $opts['method'], $target, $constraint),
];
}
[
$target,
$link,
] = $linkCache[$name][$type][$target][$constraint];
$links[$target] = $link;
}
}
$package->{$method}($links);
}
}
}