Completed
Branch master (01610a)
by Arnaud
06:29
created

LAGAdminExtension::load()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 22
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 22
ccs 0
cts 20
cp 0
rs 8.9197
cc 4
eloc 15
nc 4
nop 2
crap 20
1
<?php
2
3
namespace LAG\AdminBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Loader;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
11
/**
12
 * This is the class that loads and manages your bundle configuration.
13
 */
14
class LAGAdminExtension extends Extension
15
{
16
    /**
17
     * @param array $configs
18
     * @param ContainerBuilder $container
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
        if (!array_key_exists('application', $config)) {
29
            throw new InvalidConfigurationException('Your section "application" is not found for AdminBundle configuration');
30
        }
31
        if (!array_key_exists('admins', $config)) {
32
            throw new InvalidConfigurationException('Your section "admins" is not found for AdminBundle configuration');
33
        }
34
        if (!array_key_exists('enable_extra_configuration', $config['application'])) {
35
            $config['application']['enable_extra_configuration'] = true;
36
        }
37
        $container->setParameter('lag.admins', $config['admins']);
38
        $container->setParameter('lag.menus', $config['menus']);
39
        $container->setParameter('lag.admin.application_configuration', $config['application']);
40
        $container->setParameter('lag.enable_extra_configuration', $config['application']['enable_extra_configuration']);
41
    }
42
43
    /**
44
     * @return string
45
     */
46
    public function getAlias()
47
    {
48
        return 'lag_admin';
49
    }
50
}
51