OptionProviderPass   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 10
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 10
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 7 2
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
}