1 | <?php |
||
10 | trait ArgumentResolverTrait |
||
11 | { |
||
12 | /** |
||
13 | * {@inheritdoc} |
||
14 | */ |
||
15 | 72 | public function resolveArguments(array $arguments) |
|
16 | { |
||
17 | 72 | foreach ($arguments as &$arg) { |
|
18 | 66 | if ($arg instanceof RawArgumentInterface) { |
|
19 | 6 | $arg = $arg->getValue(); |
|
20 | 6 | continue; |
|
21 | } |
||
22 | |||
23 | 60 | if (! is_string($arg)) { |
|
24 | 6 | continue; |
|
25 | } |
||
26 | |||
27 | 57 | $container = $this->getContainer(); |
|
28 | |||
29 | 57 | if (is_null($container) && $this instanceof ReflectionContainer) { |
|
30 | 12 | $container = $this; |
|
31 | 12 | } |
|
32 | |||
33 | 57 | if (! is_null($container) && $container->has($arg)) { |
|
34 | 48 | $arg = $container->get($arg); |
|
35 | |||
36 | 48 | if ($arg instanceof RawArgumentInterface) { |
|
37 | 3 | $arg = $arg->getValue(); |
|
38 | 3 | } |
|
39 | |||
40 | 48 | continue; |
|
41 | } |
||
42 | 72 | } |
|
43 | |||
44 | 72 | return $arguments; |
|
45 | } |
||
46 | |||
47 | /** |
||
48 | * {@inheritdoc} |
||
49 | */ |
||
50 | public function reflectArguments(ReflectionFunctionAbstract $method, array $args = []) |
||
77 | |||
78 | /** |
||
79 | * @return ContainerInterface |
||
80 | */ |
||
81 | abstract public function getContainer(); |
||
82 | } |
||
83 |