PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.1.0
Defender Security – Malware Scanner, Login Security & Firewall v3.1.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / vendor / php-di / invoker / src / ParameterResolver / Container / ParameterNameContainerResolver.php

ParameterNameContainerResolver.php in Defender Security – Malware Scanner, Login Security & Firewall 3.1.0, at vendor/php-di/invoker/src/ParameterResolver/Container/ParameterNameContainerResolver.php

52 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Invoker\ParameterResolver\Container;
4
5 use Invoker\ParameterResolver\ParameterResolver;
6 use Psr\Container\ContainerInterface;
7 use ReflectionFunctionAbstract;
8
9 /**
10 * Inject entries from a DI container using the parameter names.
11 *
12 * @author Matthieu Napoli <[email protected]>
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