PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.10.1
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.10.1
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / addons / lib / ioc / php-di / invoker / src / ParameterResolver / Container / ParameterNameContainerResolver.php
cookiebot / addons / lib / ioc / php-di / invoker / src / ParameterResolver / Container Last commit date
ParameterNameContainerResolver.php 7 years ago TypeHintContainerResolver.php 7 years ago
ParameterNameContainerResolver.php
52 lines
1 <?php
2
3 namespace Invoker\ParameterResolver\Container;
4
5 use Interop\Container\ContainerInterface;
6 use Invoker\ParameterResolver\ParameterResolver;
7 use ReflectionFunctionAbstract;
8
9 /**
10 * Inject entries from a DI container using the parameter names.
11 *
12 * @author Matthieu Napoli <matthieu@mnapoli.fr>
13 */
14 class ParameterNameContainerResolver implements ParameterResolver
15 {
16 /**
17 * @var ContainerInterface
18 */
19 private $container;
20
21 /**
22 * @param ContainerInterface $container The container to get entries from.
23 */
24 public function __construct(ContainerInterface $container)
25 {
26 $this->container = $container;
27 }
28
29 public function getParameters(
30 ReflectionFunctionAbstract $reflection,
31 array $providedParameters,
32 array $resolvedParameters
33 ) {
34 $parameters = $reflection->getParameters();
35
36 // Skip parameters already resolved
37 if (! empty($resolvedParameters)) {
38 $parameters = array_diff_key($parameters, $resolvedParameters);
39 }
40
41 foreach ($parameters as $index => $parameter) {
42 $name = $parameter->name;
43
44 if ($name && $this->container->has($name)) {
45 $resolvedParameters[$index] = $this->container->get($name);
46 }
47 }
48
49 return $resolvedParameters;
50 }
51 }
52