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

AddExtensionsPass::process()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 16
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 5.025

Importance

Changes 0
Metric Value
dl 0
loc 16
ccs 9
cts 10
cp 0.9
rs 8.8571
c 0
b 0
f 0
cc 5
eloc 9
nc 5
nop 1
crap 5.025
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