Passed
Push — master ( 414f0a...c0888e )
by Pierre
03:03
created

Dictionary   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 8
c 2
b 0
f 0
dl 0
loc 30
ccs 8
cts 8
cp 1
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getFilters() 0 5 1
A getFunctions() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Knp\DictionaryBundle\Templating\Extension;
6
7
use Knp\DictionaryBundle\Dictionary\Collection;
8
use Twig\Extension\AbstractExtension;
9
use Twig\TwigFilter;
10
use Twig\TwigFunction;
11
12
final class Dictionary extends AbstractExtension
13
{
14
    /**
15
     * @var Collection
16
     */
17
    private $dictionaries;
18
19 4
    public function __construct(Collection $dictionaries)
20
    {
21 4
        $this->dictionaries = $dictionaries;
22 4
    }
23
24
    /**
25
     * @return TwigFunction[]
26
     */
27 2
    public function getFunctions()
28
    {
29
        return [
30 2
            new TwigFunction('dictionary', [$this->dictionaries, 'offsetGet']),
31
        ];
32
    }
33
34
    /**
35
     * @return TwigFilter[]
36
     */
37 2
    public function getFilters()
38
    {
39
        return [
40 2
            new TwigFilter('dictionary', function ($key, string $name) {
41 1
                return $this->dictionaries[$name][$key];
42 2
            }),
43
        ];
44
    }
45
}
46