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

CompositeParameterResolver::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
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
    /**
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