AddQueryBuilderConditionPass   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Test Coverage

Coverage 91.67%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 21
ccs 11
cts 12
cp 0.9167
rs 10
wmc 7

1 Method

Rating   Name   Duplication   Size   Complexity  
B process() 0 19 7
1
<?php declare(strict_types=1);
2
3
namespace Artprima\QueryFilterBundle\DependencyInjection\Compiler;
4
5
use Artprima\QueryFilterBundle\Query\ConditionManager;
6
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Reference;
9
10
/**
11
 * Class AddQueryBuilderConditionPass
12
 *
13
 * @author Denis Voytyuk <[email protected]>
14
 *
15
 * @package Artprima\QueryFilterBundle\DependencyInjection\Compiler
16
 */
17
class AddQueryBuilderConditionPass implements CompilerPassInterface
18
{
19 3
    public function process(ContainerBuilder $container)
20
    {
21 3
        if (false === $container->hasDefinition(ConditionManager::class)) {
22
            return;
23
        }
24
25 3
        $definition = $container->getDefinition(ConditionManager::class);
26 3
        $disabled = $container->getParameter('query_filter_bundle.disabled_conditions');
27 3
        $container->getParameterBag()->remove('query_filter_bundle.disabled_conditions');
28
29 3
        foreach ($container->findTaggedServiceIds('proxy_query_builder.condition') as $id => $tags) {
30 2
            foreach ($tags as $tag) {
31 2
                $name = isset($tag['condition']) ? $tag['condition'] : null;
32
33 2
                if (null !== $name && in_array($name, $disabled)) {
34 1
                    continue;
35
                }
36
37 2
                $definition->addMethodCall('add', [new Reference($id), $name]);
38
            }
39
        }
40
    }
41
}