PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.8.9
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.8.9
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
betterdocs / includes / Dependencies / Invoker / ParameterResolver / DefaultValueResolver.php

DefaultValueResolver.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 3.8.9, at includes/Dependencies/Invoker/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 WPDeveloper\BetterDocs\Dependencies\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