Passed
Push — master ( 8e6b10...52dd9e )
by Mike
02:56
created

AbstractProvider::getConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
declare(strict_types=1);
3
4
5
namespace Xervice\Core\Dependency\Provider;
6
7
8
use Xervice\Core\Config\ConfigInterface;
9
use Xervice\Core\Dependency\DependencyProviderInterface;
10
use Xervice\Core\Locator\Locator;
11
12
abstract class AbstractProvider implements ProviderInterface
13
{
14
    /**
15
     * @var \Xervice\Core\Locator\Locator
16
     */
17
    private $locator;
18
19
    /**
20
     * @var \Xervice\Core\Config\ConfigInterface
21
     */
22
    private $config;
23
24
    /**
25
     * AbstractProvider constructor.
26
     *
27
     * @param \Xervice\Core\Locator\Locator $locator
28
     * @param \Xervice\Core\Config\ConfigInterface $config
29
     */
30 2
    public function __construct(Locator $locator, ConfigInterface $config)
31
    {
32 2
        $this->locator = $locator;
33 2
        $this->config = $config;
34 2
    }
35
36
    /**
37
     * @param \Xervice\Core\Dependency\DependencyProviderInterface $dependencyProvider
38
     */
39
    public function register(DependencyProviderInterface $dependencyProvider): void
40
    {
41
        $this->handleDependencies($dependencyProvider);
42
    }
43
44
    /**
45
     * @param string $module
46
     * @param string $dependency
47
     * @param callable $callable
48
     */
49
    protected function injectDependency(string $module, string $dependency, callable $callable): void
50
    {
51
        $this->getLocator()->$module()->container()->set($dependency, $callable);
52
    }
53
54
    /**
55
     * @return \Xervice\Core\Locator\Locator
56
     */
57
    protected function getLocator() : Locator
58
    {
59
        return $this->locator;
60
    }
61
62
    /**
63
     * @return \Xervice\Core\Config\ConfigInterface
64
     */
65
    protected function getConfig(): ConfigInterface
66
    {
67
        return $this->config;
68
    }
69
}