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

Breadcrumb

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

function ResolveInstanceofConditionalsPass::mergeConditionals

1 call to ResolveInstanceofConditionalsPass::mergeConditionals()
ResolveInstanceofConditionalsPass::processDefinition in vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php

File

vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php, line 155

Class

ResolveInstanceofConditionalsPass
Applies instanceof conditionals to definitions.

Namespace

Symfony\Component\DependencyInjection\Compiler

Code

private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container) : array {
    // make each value an array of ChildDefinition
    $conditionals = array_map(fn($childDef) => [
        $childDef,
    ], $autoconfiguredInstanceof);
    foreach ($instanceofConditionals as $interface => $instanceofDef) {
        // make sure the interface/class exists (but don't validate automaticInstanceofConditionals)
        if (!$container->getReflectionClass($interface)) {
            throw new RuntimeException(\sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface));
        }
        if (!isset($autoconfiguredInstanceof[$interface])) {
            $conditionals[$interface] = [];
        }
        $conditionals[$interface][] = $instanceofDef;
    }
    return $conditionals;
}
RSS feed
Powered by Drupal