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

Breadcrumb

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

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\Loader

Code

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

API Navigation

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