FilterServiceProvider   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 6
dl 0
loc 36
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B register() 0 30 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Rs\XmlFilter\Container;
6
7
use Pimple\Container;
8
use Pimple\ServiceProviderInterface;
9
use Rs\XmlFilter\Filter;
10
use Rs\XmlFilter\Filter\Manager\FilterManager;
11
use Rs\XmlFilter\Filter\Manager\PimpleFilterManager;
12
13
class FilterServiceProvider implements ServiceProviderInterface
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18 47
    public function register(Container $pimple)
19
    {
20 47
        if (!$pimple instanceof FilterManager) {
21 1
            throw new \InvalidArgumentException('this provider can only be registered to a FilterManager');
22
        }
23
24
        $pimple[Filter\ScalarFilter::class] = function (PimpleFilterManager $pimple) {
25 26
            return new Filter\ScalarFilter($pimple['manager']);
26
        };
27
28
        $pimple[Filter\AggregateFilter::class] = function (PimpleFilterManager $pimple) {
29 4
            return new Filter\AggregateFilter($pimple['manager']);
30
        };
31
32
        $pimple[Filter\MapFilter::class] = function (PimpleFilterManager $pimple) {
33 1
            return new Filter\MapFilter($pimple['manager']);
34
        };
35
36
        $pimple[Filter\ReferenceFilter::class] = function (PimpleFilterManager $pimple) {
37
            return new Filter\ReferenceFilter($pimple['manager']);
38
        };
39
40
        $pimple[Filter\MergeFilter::class] = function (PimpleFilterManager $pimple) {
41
            return new Filter\MergeFilter($pimple['manager']);
42
        };
43
44
        $pimple[Filter\PostFilter::class] = function (PimpleFilterManager $pimple) {
45
            return new Filter\PostFilter($pimple['manager']);
46
        };
47 46
    }
48
}
49