PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / scope-vendor / php-di / invoker / src / ParameterResolver / DefaultValueResolver.php

DefaultValueResolver.php in The Innovative Form Builder – IvyForms 1.5, at backend/scope-vendor/php-di/invoker/src/ParameterResolver/DefaultValueResolver.php

44 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php declare(strict_types=1);
2
3 namespace IvyForms\Vendor\Invoker\ParameterResolver;
4
5 use ReflectionException;
6 use ReflectionFunctionAbstract;
7
8 /**
9 * Finds the default value for a parameter, *if it exists*.
10 */
11 class DefaultValueResolver implements ParameterResolver
12 {
13 public function getParameters(
14 ReflectionFunctionAbstract $reflection,
15 array $providedParameters,
16 array $resolvedParameters
17 ): array {
18 $parameters = $reflection->getParameters();
19
20 // Skip parameters already resolved
21 if (! empty($resolvedParameters)) {
22 $parameters = array_diff_key($parameters, $resolvedParameters);
23 }
24
25 foreach ($parameters as $index => $parameter) {
26 \assert($parameter instanceof \ReflectionParameter);
27 if ($parameter->isDefaultValueAvailable()) {
28 try {
29 $resolvedParameters[$index] = $parameter->getDefaultValue();
30 } catch (ReflectionException $e) {
31 // Can't get default values from PHP internal classes and functions
32 }
33 } else {
34 $parameterType = $parameter->getType();
35 if ($parameterType && $parameterType->allowsNull()) {
36 $resolvedParameters[$index] = null;
37 }
38 }
39 }
40
41 return $resolvedParameters;
42 }
43 }
44