ContainerNameResolver   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 24
wmc 3
lcom 0
cbo 1
ccs 7
cts 7
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A resolve() 0 8 2
1
<?php
2
3
namespace mindplay\unravel\resolvers;
4
5
use Interop\Container\ContainerInterface;
6
use mindplay\unravel\Resolver;
7
use ReflectionParameter;
8
9
/**
10
 * Resolves parameter names against a DI-container using the parameter-name as the component ID.
11
 *
12
 * This Resolver provides integration with a DI-container via `container-interop`.
13
 *
14
 * @see https://github.com/container-interop/container-interop
15
 */
16
class ContainerNameResolver implements Resolver
17
{
18
    /**
19
     * @var ContainerInterface
20
     */
21
    private $container;
22
23
    /**
24
     * @param ContainerInterface $container
25
     */
26 1
    public function __construct(ContainerInterface $container)
27
    {
28 1
        $this->container = $container;
29 1
    }
30
31 1
    public function resolve(ReflectionParameter $param, $next)
32
    {
33 1
        if ($this->container->has($param->name)) {
34 1
            return $this->container->get($param->name);
35
        }
36
37 1
        return $next($param);
38
    }
39
}
40