Completed
Push — master ( a682ba...4851b3 )
by Paweł
40:50
created

AddExtensionsPass   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 90%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 22
ccs 9
cts 10
cp 0.9
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B process() 0 16 5
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Superdesk Web Publisher Menu Bundle.
7
 *
8
 * Copyright 2016 Sourcefabric z.ú. and contributors.
9
 *
10
 * For the full copyright and license information, please see the
11
 * AUTHORS and LICENSE files distributed with this source code.
12
 *
13
 * @copyright 2016 Sourcefabric z.ú
14
 * @license http://www.superdesk.org/license
15
 */
16
17
namespace SWP\Bundle\MenuBundle\DependencyInjection\Compiler;
18
19
use Symfony\Component\DependencyInjection\ContainerBuilder;
20
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
21
use Symfony\Component\DependencyInjection\Reference;
22
23
class AddExtensionsPass implements CompilerPassInterface
24
{
25
    /**
26
     * {@inheritdoc}
27
     */
28 1
    public function process(ContainerBuilder $container)
29
    {
30 1
        if (!$container->hasDefinition('swp_menu.extension_chain')) {
31
            return;
32
        }
33
34 1
        $definition = $container->getDefinition('swp_menu.extension_chain');
35 1
        $services = $container->findTaggedServiceIds('knp_menu.factory_extension');
36
37 1
        foreach ($services as $serviceId => $tags) {
38 1
            foreach ($tags as $attributes) {
39 1
                $priority = isset($attributes['priority']) ? $attributes['priority'] : 0;
40 1
                $definition->addMethodCall('addExtension', array(new Reference($serviceId), $priority));
41
            }
42
        }
43 1
    }
44
}
45