FilterServiceProvider::register()   B
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 30
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 7
cts 7
cp 1
rs 8.8571
c 0
b 0
f 0
cc 2
eloc 15
nc 2
nop 1
crap 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