Passed
Pull Request — master (#78)
by Sergei
03:08 queued 43s
created

CompositeParameterResolver   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 22
ccs 0
cts 7
cp 0
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A resolve() 0 10 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Injector\ParameterResolver;
6
7
use ReflectionParameter;
8
9
final class CompositeParameterResolver implements ParameterResolverInterface
10
{
11
    /**
12
     * @var ParameterResolverInterface[]
13
     */
14
    private array $resolvers;
15
16
    public function __construct(ParameterResolverInterface ...$resolvers)
17
    {
18
        $this->resolvers = $resolvers;
19
    }
20
21
    public function resolve(ReflectionParameter $parameter)
22
    {
23
        foreach ($this->resolvers as $resolver) {
24
            try {
25
                return $resolver->resolve($parameter);
26
            } catch (ParameterNotResolvedException $e) {
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
27
            }
28
        }
29
30
        throw new ParameterNotResolvedException();
31
    }
32
}
33