Completed
Push — dev ( 8eacd8...04be10 )
by De Cramer
02:44
created

eXpansionCoreExtension::load()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 8.9713
c 0
b 0
f 0
cc 2
eloc 16
nc 2
nop 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: olive
5
 * Date: 12/03/2017
6
 * Time: 10:04
7
 */
8
9
namespace eXpansion\Framework\Core\DependencyInjection;
10
11
use Symfony\Component\DependencyInjection\ContainerBuilder;
12
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
13
use Symfony\Component\Config\FileLocator;
14
use Symfony\Component\DependencyInjection\Loader;
15
16
class eXpansionCoreExtension extends Extension
17
{
18
19
    /**
20
     * Loads a specific configuration.
21
     *
22
     * @param array $configs An array of configuration values
23
     * @param ContainerBuilder $container A ContainerBuilder instance
24
     *
25
     * @throws \InvalidArgumentException When provided tag is not defined in this extension
26
     */
27
    public function load(array $configs, ContainerBuilder $container)
28
    {
29
        $configuration = new Configuration();
30
        $config = $this->processConfiguration($configuration, $configs);
31
32
        foreach ($config['parameters'] as $paramName => $value) {
33
            $container->setParameter("expansion.config.$paramName", $value);
34
        }
35
36
37
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
38
        $loader->load('services.yml');
39
        $loader->load('data_providers.yml');
40
        $loader->load('storage.yml');
41
        $loader->load('user_groups.yml');
42
        $loader->load('ml_scripts.yml');
43
        $loader->load('gui.yml');
44
        $loader->load('gui_grid.yml');
45
        $loader->load('helpers.yml');
46
        $loader->load('listeners.yml');
47
48
        // Temporary for the prototype.
49
        $loader->load('plugins.yml');
50
    }
51
}