Resolver::setConstructorResolver()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

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