Completed
Pull Request — master (#26)
by Julien
04:20
created

loadProcessorConfiguration()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 2
crap 2
1
<?php
2
3
namespace Itkg\DelayEventBundle\DependencyInjection;
4
5
use Symfony\Component\DependencyInjection\ContainerBuilder;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
8
use Symfony\Component\DependencyInjection\Loader;
9
10
/**
11
 * This is the class that loads and manages your bundle configuration
12
 *
13
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
14
 */
15
class ItkgDelayEventExtension extends Extension
16
{
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function load(array $configs, ContainerBuilder $container)
21
    {
22
        $configuration = new Configuration();
23
        $config = $this->processConfiguration($configuration, $configs);
24
25
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
26
        $loader->load('services.yml');
27
28
        $this->loadEventNames($container, $config);
29
        $this->loadProcessorConfiguration($container, $config);
30
        $this->loadChannels($container, $config);
31
    }
32
33
    /**
34
     * @param ContainerBuilder $container
35
     * @param array            $config
36
     */
37
    protected function loadEventNames(ContainerBuilder $container, array $config)
38
    {
39
        if (isset($config['events'])) {
40
            $container->setParameter('itkg_delay_event.event_names', array_keys($config['events']));
41
            $container->setParameter('itkg_delay_event.event_config', $config['events']);
42
        }
43
    }
44
45
    /**
46
     * @param ContainerBuilder $container
47
     * @param array            $config
48
     */
49
    protected function loadProcessorConfiguration(ContainerBuilder $container, array $config)
50
    {
51
        $container->setParameter('itkg_delay_event.processor.config', $config['processor']);
52
    }
53
54
    /**
55
     * @param ContainerBuilder $container
56
     * @param array            $config
57
     */
58
    private function loadChannels(ContainerBuilder $container, array $config)
59
    {
60
        $container->setParameter('itkg_delay_event.channels', $config['channels']);
61
    }
62
}
63