Completed
Pull Request — master (#131)
by Kevin
03:34
created

StandardConfigurationProvider::configureDi()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 1
1
<?php
2
3
namespace Magium\Util\Configuration;
4
5
use Zend\Di\Di;
6
7
class StandardConfigurationProvider implements ConfigurationProviderInterface
8
{
9
    protected $configurationDir;
10
11
    protected $classConfigurationReader;
12
13
    protected $configurationReader;
14
15
    protected $environmentConfigurationReader;
16
17
    public function __construct(
18
        ConfigurationReader $configurationReader,
19
        ClassConfigurationReader $classConfigurationReader,
20
        EnvironmentConfigurationReader $environmentConfigurationReader,
21
        $configurationDir = null)
22
    {
23
        $this->configurationReader = $configurationReader;
24
        $this->classConfigurationReader = $classConfigurationReader;
25
        $this->environmentConfigurationReader = $environmentConfigurationReader;
26
        $this->configurationDir = $configurationDir;
27
        if ($this->configurationDir !== null && realpath($this->configurationDir) !== false) {
28
            $this->classConfigurationReader->setConfigurationDir($this->configurationDir);
29
        }
30
    }
31
32
    public function configureDi(Di $di)
33
    {
34
        $di->instanceManager()->addSharedInstance($this->configurationReader,               get_class($this->configurationReader));
35
        $di->instanceManager()->addSharedInstance($this->classConfigurationReader,          get_class($this->classConfigurationReader));
36
        $di->instanceManager()->addSharedInstance($this->environmentConfigurationReader,    get_class($this->environmentConfigurationReader));
37
        $di->instanceManager()->addSharedInstance($this,                                    get_class($this));
38
    }
39
40
    public function configureObject(ConfigurableObjectInterface $obj)
41
    {
42
        $this->classConfigurationReader->configure($obj);
43
44
        $this->configurationReader->configure($obj);
45
46
        $this->environmentConfigurationReader->configure($obj);
47
    }
48
49
}