|
16 | 16 | use Symfony\Component\DependencyInjection\Definition;
|
17 | 17 | use Symfony\Component\DependencyInjection\Reference;
|
18 | 18 | use Symfony\Component\DependencyInjection\ServiceLocator;
|
| 19 | +use Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver; |
19 | 20 |
|
20 | 21 | /**
|
21 | 22 | * @author Yonel Ceruto <yonelceruto@gmail.com>
|
@@ -136,28 +137,20 @@ protected function processValue($value, bool $isRoot = false)
|
136 | 137 |
|
137 | 138 | private function findControllerArguments(ContainerBuilder $container): array
|
138 | 139 | {
|
139 |
| - if ($container->hasDefinition($this->resolverServiceId)) { |
140 |
| - $argument = $container->getDefinition($this->resolverServiceId)->getArgument(0); |
141 |
| - if ($argument instanceof Reference) { |
142 |
| - $argument = $container->getDefinition($argument); |
143 |
| - } |
144 |
| - |
145 |
| - return $argument->getArgument(0); |
| 140 | + if (!$container->has($this->resolverServiceId)) { |
| 141 | + return []; |
146 | 142 | }
|
| 143 | + $resolverDef = $container->findDefinition($this->resolverServiceId); |
147 | 144 |
|
148 |
| - if ($container->hasDefinition('debug.'.$this->resolverServiceId)) { |
149 |
| - $argument = $container->getDefinition('debug.'.$this->resolverServiceId)->getArgument(0); |
150 |
| - if ($argument instanceof Reference) { |
151 |
| - $argument = $container->getDefinition($argument); |
152 |
| - } |
153 |
| - $argument = $argument->getArgument(0); |
154 |
| - if ($argument instanceof Reference) { |
155 |
| - $argument = $container->getDefinition($argument); |
156 |
| - } |
| 145 | + if (TraceableValueResolver::class === $resolverDef->getClass()) { |
| 146 | + $resolverDef = $container->getDefinition($resolverDef->getArgument(0)); |
| 147 | + } |
157 | 148 |
|
158 |
| - return $argument->getArgument(0); |
| 149 | + $argument = $resolverDef->getArgument(0); |
| 150 | + if ($argument instanceof Reference) { |
| 151 | + $argument = $container->getDefinition($argument); |
159 | 152 | }
|
160 | 153 |
|
161 |
| - return []; |
| 154 | + return $argument->getArgument(0); |
162 | 155 | }
|
163 | 156 | }
|
0 commit comments