OptionProviderPass::process()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace Cocotte\DependencyInjection;
4
5
use Cocotte\Console\OptionProvider;
6
use Cocotte\Console\OptionProviderRegistry;
7
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
8
use Symfony\Component\DependencyInjection\ContainerBuilder;
9
use Symfony\Component\DependencyInjection\Reference;
10
11
final class OptionProviderPass implements CompilerPassInterface
12
{
13
14
    public function process(ContainerBuilder $container)
15
    {
16
        $configs = $container->findTaggedServiceIds(OptionProvider::OPTION_PROVIDER);
17
        $definition = $container->getDefinition(OptionProviderRegistry::class);
18
19
        foreach ($configs as $id => $attributes) {
20
            $definition->addMethodCall('registerProvider', [new Reference($id)]);
21
        }
22
    }
23
}