addCheckAmbiguousReferencesPass()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
/*
4
 * This is part of the symfonette/class-named-services package.
5
 *
6
 * (c) Martin Hasoň <[email protected]>
7
 * (c) Webuni s.r.o. <[email protected]>
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
namespace Symfonette\ClassNamedServices;
14
15
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
16
use Symfony\Component\DependencyInjection\Compiler\ResolveReferencesToAliasesPass;
17
use Symfony\Component\DependencyInjection\ContainerBuilder;
18
19
class ContainerBuilderConfigurator
20
{
21 8
    public function configure(ContainerBuilder $builder)
22
    {
23 8
        $this->addRegisterClassNamedServicesPass($builder);
24 8
        $this->addCheckAmbiguousReferencesPass($builder);
25 8
    }
26
27 8
    private function addRegisterClassNamedServicesPass(ContainerBuilder $builder)
28
    {
29 8
        $compilerPass = new RegisterClassNamedServicesPass();
30
31 8
        $passConfig = $builder->getCompilerPassConfig();
32 8
        $passes = $passConfig->getOptimizationPasses();
33 8
        foreach ($passes as $key => $pass) {
34 8
            if ($pass instanceof ResolveReferencesToAliasesPass) {
35 8
                array_splice($passes, $key, 0, [$compilerPass]);
36 8
                break;
37
            }
38
        }
39
40 8
        $passConfig->setOptimizationPasses($passes);
41
42 8
        $builder->addObjectResource($compilerPass);
43 8
    }
44
45 8
    private function addCheckAmbiguousReferencesPass(ContainerBuilder $builder)
46
    {
47 8
        $builder->addCompilerPass(new CheckAmbiguousReferencesPass(), PassConfig::TYPE_AFTER_REMOVING);
48 8
    }
49
}
50