TwigDependencyProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 13
dl 0
loc 43
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getTwigExtensions() 0 3 1
A getPathProviderList() 0 4 1
A handleDependencies() 0 15 1
1
<?php
2
declare(strict_types=1);
3
4
5
namespace Xervice\Twig;
6
7
8
use Xervice\Core\Business\Model\Dependency\DependencyContainerInterface;
9
use Xervice\Core\Business\Model\Dependency\Provider\AbstractDependencyProvider;
10
use Xervice\Twig\Business\Model\Path\PathCollection;
11
use Xervice\Twig\Business\Model\Path\XervicePathProvider;
12
use Xervice\Twig\Business\Model\Twig\Extensions\TwigExtensionCollection;
13
14
class TwigDependencyProvider extends AbstractDependencyProvider
15
{
16
    public const PATH_PROVIDER_COLLECTION = 'path.provider.collection';
17
    public const TWIG_EXTENSIONS = 'twig.extensions';
18
19
    /**
20
     * @param \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface $container
21
     *
22
     * @return \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface
23
     */
24 2
    public function handleDependencies(DependencyContainerInterface $container): DependencyContainerInterface
25
    {
26
        $container[self::PATH_PROVIDER_COLLECTION] = function () {
27 2
            return new PathCollection(
28 2
                $this->getPathProviderList()
29
            );
30
        };
31
32
        $container[self::TWIG_EXTENSIONS] = function () {
33 2
            return new TwigExtensionCollection(
34 2
                $this->getTwigExtensions()
35
            );
36
        };
37
38 2
        return $container;
39
    }
40
41
    /**
42
     * @return \Xervice\Twig\Business\Dependency\Path\PathProviderInterface[]
43
     */
44 2
    protected function getPathProviderList(): array
45
    {
46
        return [
47 2
            new XervicePathProvider()
48
        ];
49
    }
50
51
    /**
52
     * @return \Xervice\Twig\Business\Dependency\Twig\Extensions\TwigExtensionInterface[]
53
     */
54 2
    protected function getTwigExtensions(): array
55
    {
56 2
        return [];
57
    }
58
}