1 | <?php |
||
21 | final class CrossContainerProcessor implements CompilerPassInterface |
||
22 | { |
||
23 | /** |
||
24 | * @var ContainerAccessor[] |
||
25 | */ |
||
26 | private $containerAccessors; |
||
27 | |||
28 | /** |
||
29 | * @param ContainerAccessor[] $containerAccessors |
||
30 | */ |
||
31 | public function __construct(array $containerAccessors = []) |
||
37 | |||
38 | /** |
||
39 | * @param string $containerIdentifier |
||
40 | * @param ContainerAccessor $containerAccessor |
||
41 | */ |
||
42 | public function addContainerAccessor(string $containerIdentifier, ContainerAccessor $containerAccessor): void |
||
46 | |||
47 | /** |
||
48 | * {@inheritdoc} |
||
49 | */ |
||
50 | public function process(ContainerBuilder $container): void |
||
58 | |||
59 | /** |
||
60 | * @param Definition $definition |
||
61 | * |
||
62 | * @return Definition |
||
63 | */ |
||
64 | private function resolveDefinition(Definition $definition): Definition |
||
72 | |||
73 | /** |
||
74 | * @param array|null $factory |
||
75 | * |
||
76 | * @return array|null |
||
77 | */ |
||
78 | private function resolveFactory(?array $factory): ?array |
||
90 | |||
91 | /** |
||
92 | * @param array $methodCalls |
||
93 | * |
||
94 | * @return array |
||
95 | */ |
||
96 | private function resolveMethodCalls(array $methodCalls): array |
||
102 | |||
103 | /** |
||
104 | * @param array $arguments |
||
105 | * |
||
106 | * @return array |
||
107 | */ |
||
108 | private function resolveArguments(array $arguments): array |
||
114 | |||
115 | /** |
||
116 | * @param mixed $argument |
||
117 | * |
||
118 | * @return mixed |
||
119 | */ |
||
120 | private function resolveArgument($argument) |
||
136 | |||
137 | /** |
||
138 | * @param Reference $reference |
||
139 | * |
||
140 | * @return Definition|Reference |
||
141 | */ |
||
142 | private function resolveReference(Reference $reference) |
||
150 | |||
151 | /** |
||
152 | * @param ExternalReference $externalReference |
||
153 | * |
||
154 | * @return Definition |
||
155 | */ |
||
156 | private function transformReferenceToDefinition(ExternalReference $externalReference): Definition |
||
165 | |||
166 | /** |
||
167 | * @param ExternalReference $externalReference |
||
168 | * |
||
169 | * @throws \DomainException |
||
170 | */ |
||
171 | private function assertExternalReferenceHasKnownContainer(ExternalReference $externalReference): void |
||
180 | |||
181 | /** |
||
182 | * @param ContainerBuilder $container |
||
183 | */ |
||
184 | private function copyParameters(ContainerBuilder $container): void |
||
192 | } |
||
193 |
This check looks at variables that are passed out again to other methods.
If the outgoing method call has stricter type requirements than the method itself, an issue is raised.
An additional type check may prevent trouble.