DefaultActivator   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 25
c 0
b 0
f 0
wmc 4
lcom 0
cbo 2
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A createInstance() 0 21 4
1
<?php
2
namespace DICIT\Activators;
3
4
use DICIT\Activator;
5
use DICIT\Container;
6
use DICIT\UnbuildableServiceException;
7
use DICIT\Util\ParamsResolver;
8
9
class DefaultActivator implements Activator
10
{
11
12
    public function createInstance(Container $container, $serviceName, array $serviceConfig)
13
    {
14
        $className = $serviceConfig['class'];
15
16
        if (! class_exists($className)) {
17
            throw new UnbuildableServiceException(sprintf("Class '%s' not found.", $className));
18
        }
19
20
        $class = new \ReflectionClass($className);
21
        $activationArgs = isset($serviceConfig['arguments']) ?
22
            ParamsResolver::resolveParams($container, $serviceConfig['arguments']) : array();
23
24
        if (! empty($activationArgs)) {
25
            $instance = $class->newInstanceArgs($activationArgs);
26
        }
27
        else {
28
            $instance = $class->newInstance();
29
        }
30
31
        return $instance;
32
    }
33
}
34