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

CompositeParameterResolver::resolve()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 5
nc 3
nop 1
dl 0
loc 10
ccs 0
cts 5
cp 0
crap 12
rs 10
c 1
b 0
f 0
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