Passed
Pull Request — master (#78)
by Sergei
02:43
created

CompositeParameterResolver   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
dl 0
loc 19
ccs 0
cts 7
cp 0
rs 10
c 1
b 0
f 0
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
    private array $resolvers;
12
13
    public function __construct(ParameterResolverInterface ...$resolvers)
14
    {
15
        $this->resolvers = $resolvers;
16
    }
17
18
    public function resolve(ReflectionParameter $parameter)
19
    {
20
        foreach ($this->resolvers as $resolver) {
21
            try {
22
                return $resolver->resolve($parameter);
23
            } catch (ParameterNotResolvedException $e) {
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
24
            }
25
        }
26
27
        throw new ParameterNotResolvedException();
28
    }
29
}
30