Passed
Push — main ( 31ed5f...388aa0 )
by Thierry
12:07
created

CompilerPass   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 23
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 18 3
1
<?php
2
3
namespace Lagdo\Symfony\Facades\DependencyInjection\Compiler;
4
5
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
8
use function array_keys;
9
10
class CompilerPass implements CompilerPassInterface
11
{
12
    /**
13
     * @inheritDoc
14
     */
15
    public function process(ContainerBuilder $container)
16
    {
17
        if(!$container->hasDefinition('lagdo.facades.service_locator'))
18
        {
19
            return;
20
        }
21
22
        $serviceLocatorDefinition = $container->getDefinition('lagdo.facades.service_locator');
23
24
        // Append the tagged services to the service locator first argument.
25
        $locatedServices = $serviceLocatorDefinition->getArguments()[0] ?? [];
26
        $services = $container->findTaggedServiceIds('lagdo.facades.service');
27
        foreach(array_keys($services) as $service)
28
        {
29
            $locatedServices[$service] = $container->getDefinition($service);
30
        }
31
32
        $serviceLocatorDefinition->replaceArgument(0, $locatedServices);
33
    }
34
}
35