Resolver   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A resolve() 0 23 3
A setConstructorResolver() 0 4 1
1
<?php
2
3
namespace Sensorario\Container\Resolver;
4
5
use Sensorario\Container\Objects\Argument;
6
use Sensorario\Container\Objects\Service;
7
8
class Resolver implements
9
    \Sensorario\Container\Resolver\ResolverInterface
10
{
11
    private $construcrtorResolver;
12
13 10
    public function setConstructorResolver(ConstructorResolver $resolver) : void
14
    {
15 10
        $this->construcrtorResolver = $resolver;
16 10
    }
17
18 2
    public function resolve(Service $service)
19
    {
20 2
        $resolution = $this->construcrtorResolver->resolve($service);
21
22 2
        foreach ($service->getMethods() as $methodName => $value) {
23 2
            $argument = Argument::fromString($value);
24
25 2
            if ($argument->isService()) {
26 2
                $collabortor = Service::box([
27 2
                    'name' => $argument->getServiceName(),
28 2
                    'services' => $service->getServicesConfiguration(),
29
                ]);
30
31 2
                $resolution->$methodName(
32 2
                    $this->construcrtorResolver->resolve($collabortor)
33
                );
34
            } else {
35 2
                $resolution->$methodName($value);
36
            }
37
        }
38
39 2
        return $resolution;
40
    }
41
}
42