PluginProbe
Elementor Website Builder – more than just a page builder / 3.27.0-dev2
Elementor Website Builder – more than just a page builder v3.27.0-dev2
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / vendor_prefixed / php-di / invoker / src / ParameterResolver / DefaultValueResolver.php

DefaultValueResolver.php in Elementor Website Builder – more than just a page builder 3.27.0-dev2, at vendor_prefixed/php-di/invoker/src/ParameterResolver/DefaultValueResolver.php

38 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 declare (strict_types=1);
4 namespace ElementorDeps\Invoker\ParameterResolver;
5
6 use ReflectionException;
7 use ReflectionFunctionAbstract;
8 /**
9 * Finds the default value for a parameter, *if it exists*.
10 */
11 class DefaultValueResolver implements ParameterResolver
12 {
13 public function getParameters(ReflectionFunctionAbstract $reflection, array $providedParameters, array $resolvedParameters) : array
14 {
15 $parameters = $reflection->getParameters();
16 // Skip parameters already resolved
17 if (!empty($resolvedParameters)) {
18 $parameters = \array_diff_key($parameters, $resolvedParameters);
19 }
20 foreach ($parameters as $index => $parameter) {
21 \assert($parameter instanceof \ReflectionParameter);
22 if ($parameter->isDefaultValueAvailable()) {
23 try {
24 $resolvedParameters[$index] = $parameter->getDefaultValue();
25 } catch (ReflectionException $e) {
26 // Can't get default values from PHP internal classes and functions
27 }
28 } else {
29 $parameterType = $parameter->getType();
30 if ($parameterType && $parameterType->allowsNull()) {
31 $resolvedParameters[$index] = null;
32 }
33 }
34 }
35 return $resolvedParameters;
36 }
37 }
38