Server IP : 172.67.157.199 / Your IP : 3.148.109.216 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/defender-security/lib/packages/Invoker/ParameterResolver/ |
Upload File : |
<?php declare(strict_types=1); namespace WPMU_DEV\Defender\Vendor\Invoker\ParameterResolver; use ReflectionFunctionAbstract; /** * Dispatches the call to other resolvers until all parameters are resolved. * * Chain of responsibility pattern. */ class ResolverChain implements ParameterResolver { /** @var ParameterResolver[] */ private $resolvers; public function __construct(array $resolvers = []) { $this->resolvers = $resolvers; } public function getParameters( ReflectionFunctionAbstract $reflection, array $providedParameters, array $resolvedParameters ): array { $reflectionParameters = $reflection->getParameters(); foreach ($this->resolvers as $resolver) { $resolvedParameters = $resolver->getParameters( $reflection, $providedParameters, $resolvedParameters ); $diff = array_diff_key($reflectionParameters, $resolvedParameters); if (empty($diff)) { // Stop traversing: all parameters are resolved return $resolvedParameters; } } return $resolvedParameters; } /** * Push a parameter resolver after the ones already registered. */ public function appendResolver(ParameterResolver $resolver): void { $this->resolvers[] = $resolver; } /** * Insert a parameter resolver before the ones already registered. */ public function prependResolver(ParameterResolver $resolver): void { array_unshift($this->resolvers, $resolver); } }