PluginProbe ʕ •ᴥ•ʔ
Reviews Feed – Add Testimonials and Customer Reviews From Google Reviews, Yelp, TripAdvisor, and More / 2.11.0
Reviews Feed – Add Testimonials and Customer Reviews From Google Reviews, Yelp, TripAdvisor, and More v2.11.0
2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.7 2.6.8 2.6.5 2.6.4 2.6.3 2.6.2 2.6.0 2.5.5 2.5.4 2.5.3 2.5.2 trunk 1.0 1.0.1 1.0.2 1.0.3 1.1 1.1.1 1.1.2 1.2.0 2.0 2.1.0 2.1.1 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5.0 2.5.1
reviews-feed / vendor / php-di / invoker / src / ParameterResolver / ResolverChain.php
reviews-feed / vendor / php-di / invoker / src / ParameterResolver Last commit date
Container 1 week ago AssociativeArrayResolver.php 1 week ago DefaultValueResolver.php 1 week ago NumericArrayResolver.php 1 week ago ParameterResolver.php 1 week ago ResolverChain.php 1 week ago TypeHintResolver.php 1 week ago
ResolverChain.php
48 lines
1 <?php
2
3
4 namespace SmashBalloon\Reviews\Vendor\Invoker\ParameterResolver;
5
6 use ReflectionFunctionAbstract;
7 /**
8 * Dispatches the call to other resolvers until all parameters are resolved.
9 *
10 * Chain of responsibility pattern.
11 */
12 class ResolverChain implements ParameterResolver
13 {
14 /** @var ParameterResolver[] */
15 private $resolvers;
16 public function __construct(array $resolvers = [])
17 {
18 $this->resolvers = $resolvers;
19 }
20 public function getParameters(ReflectionFunctionAbstract $reflection, array $providedParameters, array $resolvedParameters): array
21 {
22 $reflectionParameters = $reflection->getParameters();
23 foreach ($this->resolvers as $resolver) {
24 $resolvedParameters = $resolver->getParameters($reflection, $providedParameters, $resolvedParameters);
25 $diff = array_diff_key($reflectionParameters, $resolvedParameters);
26 if (empty($diff)) {
27 // Stop traversing: all parameters are resolved
28 return $resolvedParameters;
29 }
30 }
31 return $resolvedParameters;
32 }
33 /**
34 * Push a parameter resolver after the ones already registered.
35 */
36 public function appendResolver(ParameterResolver $resolver): void
37 {
38 $this->resolvers[] = $resolver;
39 }
40 /**
41 * Insert a parameter resolver before the ones already registered.
42 */
43 public function prependResolver(ParameterResolver $resolver): void
44 {
45 array_unshift($this->resolvers, $resolver);
46 }
47 }
48