Passed
Pull Request — master (#12)
by Jakub
06:09
created

Req2CmdExtension::configureExtractors()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
c 0
b 0
f 0
rs 9.4285
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Eps\Req2CmdBundle\DependencyInjection;
5
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Extension\Extension;
9
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
10
use Symfony\Component\DependencyInjection\Reference;
11
12
final class Req2CmdExtension extends Extension
13
{
14
    /**
15
     * {@inheritdoc}
16
     * @throws \Exception
17
     */
18
    public function load(array $configs, ContainerBuilder $container): void
19
    {
20
        $configuration = new Req2CmdConfiguration();
21
        $config = $this->processConfiguration($configuration, $configs);
22
23
        $loader = new XmlFileLoader(
24
            $container,
25
            new FileLocator(__DIR__ . '/../Resources/config')
26
        );
27
28
        $loader->load('actions.xml');
29
        $loader->load('extractors.xml');
30
        $loader->load('listeners.xml');
31
        $loader->load('param_mappers.xml');
32
33
        $this->configureExtractors($config, $container);
34
    }
35
36
    public function getAlias(): string
37
    {
38
        return 'req2cmd';
39
    }
40
41
    private function configureExtractors(array $config, ContainerBuilder $container): void
42
    {
43
        $extractorId = (string)$config['extractor']['service_id'];
44
        $container->setAlias('eps.req2cmd.extractor', $extractorId);
45
    }
46
}
47