Failed Conditions
Push — master ( 6ec91b...690d0c )
by Denis
02:48
created

AddQueryBuilderConditionPass::process()   B

Complexity

Conditions 7
Paths 7

Size

Total Lines 19
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 56

Importance

Changes 0
Metric Value
cc 7
eloc 11
nc 7
nop 1
dl 0
loc 19
ccs 0
cts 15
cp 0
crap 56
rs 8.2222
c 0
b 0
f 0
1
<?php declare(strict_types = 1);
2
3
namespace Artprima\QueryFilterBundle\DependencyInjection\Compiler;
4
5
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Reference;
8
9
/**
10
 * Class AddQueryBuilderConditionPass
11
 *
12
 * @author Denis Voytyuk <[email protected]>
13
 *
14
 * @package Artprima\QueryFilterBundle\DependencyInjection\Compiler
15
 */
16
class AddQueryBuilderConditionPass implements CompilerPassInterface
17
{
18
    public function process(ContainerBuilder $container)
19
    {
20
        if (false === $container->hasDefinition('query_filter_bundle.query.proxy_query_builder_manager')) {
21
            return;
22
        }
23
24
        $definition = $container->getDefinition('query_filter_bundle.query.proxy_query_builder_manager');
25
        $disabled = $container->getParameter('query_filter_bundle.disabled_conditions');
26
        $container->getParameterBag()->remove('query_filter_bundle.disabled_conditions');
27
28
        foreach ($container->findTaggedServiceIds('proxy_query_builder.condition') as $id => $converters) {
29
            foreach ($converters as $converter) {
30
                $name = isset($converter['condition']) ? $converter['condition'] : null;
31
32
                if (null !== $name && in_array($name, $disabled)) {
33
                    continue;
34
                }
35
36
                $definition->addMethodCall('registerCondition', [new Reference($id)]);
37
            }
38
        }
39
    }
40
}