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 / AssociativeArrayResolver.php
cookiebot / addons / lib / ioc / php-di / invoker / src / ParameterResolver Last commit date
Container 7 years ago AssociativeArrayResolver.php 7 years ago DefaultValueResolver.php 7 years ago NumericArrayResolver.php 7 years ago ParameterResolver.php 7 years ago ResolverChain.php 7 years ago TypeHintResolver.php 7 years ago
AssociativeArrayResolver.php
40 lines
1 <?php
2
3 namespace Invoker\ParameterResolver;
4
5 use ReflectionFunctionAbstract;
6
7 /**
8 * Tries to map an associative array (string-indexed) to the parameter names.
9 *
10 * E.g. `->call($callable, ['foo' => 'bar'])` will inject the string `'bar'`
11 * in the parameter named `$foo`.
12 *
13 * Parameters that are not indexed by a string are ignored.
14 *
15 * @author Matthieu Napoli <matthieu@mnapoli.fr>
16 */
17 class AssociativeArrayResolver implements ParameterResolver
18 {
19 public function getParameters(
20 ReflectionFunctionAbstract $reflection,
21 array $providedParameters,
22 array $resolvedParameters
23 ) {
24 $parameters = $reflection->getParameters();
25
26 // Skip parameters already resolved
27 if (! empty($resolvedParameters)) {
28 $parameters = array_diff_key($parameters, $resolvedParameters);
29 }
30
31 foreach ($parameters as $index => $parameter) {
32 if (array_key_exists($parameter->name, $providedParameters)) {
33 $resolvedParameters[$index] = $providedParameters[$parameter->name];
34 }
35 }
36
37 return $resolvedParameters;
38 }
39 }
40