VacancyRoadmapPass   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 8
c 1
b 0
f 0
dl 0
loc 17
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 12 3
1
<?php
2
3
/*
4
 * This file is part of the Veslo project <https://github.com/symfony-doge/veslo>.
5
 *
6
 * (C) 2019 Pavel Petrov <[email protected]>.
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 *
11
 * @license https://opensource.org/licenses/GPL-3.0 GPL-3.0
12
 */
13
14
declare(strict_types=1);
15
16
namespace Veslo\AnthillBundle\DependencyInjection\Compiler;
17
18
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
19
use Symfony\Component\DependencyInjection\ContainerBuilder;
20
use Symfony\Component\DependencyInjection\Reference;
21
use Veslo\AnthillBundle\Vacancy\RoadmapInterface;
22
23
/**
24
 * Searches for registered vacancy roadmap services
25
 */
26
class VacancyRoadmapPass implements CompilerPassInterface
27
{
28
    /**
29
     * {@inheritdoc}
30
     */
31
    public function process(ContainerBuilder $container)
32
    {
33
        $antQueenDefinition = $container->getDefinition('veslo.anthill.vacancy.ant_queen');
34
35
        $roadmapIds = $container->findTaggedServiceIds(RoadmapInterface::TAG);
36
37
        foreach ($roadmapIds as $id => $tags) {
38
            foreach ($tags as $attributes) {
39
                $roadmapName = $attributes['roadmapName'];
40
                $reference   = new Reference($id);
41
42
                $antQueenDefinition->addMethodCall('addRoadmap', [$roadmapName, $reference]);
43
            }
44
        }
45
    }
46
}
47