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\CompilerCode
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;
}