Completed
Pull Request — master (#154)
by Arnaud
03:59
created

LAGAdminExtension::prepend()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 3
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 5
ccs 0
cts 4
cp 0
crap 2
rs 10
1
<?php
2
3
namespace LAG\AdminBundle\DependencyInjection;
4
5
use Symfony\Component\Config\FileLocator;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
8
use Symfony\Component\DependencyInjection\Loader;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
11
/**
12
 * Load AdminBundle configuration into the container.
13
 */
14
class LAGAdminExtension extends Extension implements PrependExtensionInterface
15
{
16
    /**
17
     * Load the configuration into the container.
18
     */
19 2
    public function load(array $configs, ContainerBuilder $builder)
20
    {
21 2
        $configuration = new Configuration();
22 2
        $config = $this->processConfiguration($configuration, $configs);
23
24 2
        $loader = new Loader\YamlFileLoader($builder, new FileLocator(__DIR__.'/../Resources/config'));
25 2
        $loader->load('services.yaml');
26
27 2
        if ('dev' === $builder->getParameter('kernel.environment')) {
28
            $loader->load('services_dev.yaml');
29
        }
30 2
        $applicationConfig = [];
31 2
        $adminsConfig = [];
32 2
        $enableExtraConfig = true;
33
34 2
        if (key_exists('application', $config)) {
35
            if (key_exists('enable_extra_configuration', $config['application'])) {
36
                $enableExtraConfig = $config['application']['enable_extra_configuration'];
37
            }
38
            $applicationConfig = $config['application'];
39
        }
40
41 2
        if (key_exists('admins', $config)) {
42 2
            $adminsConfig = $config['admins'];
43
        }
44
45 2
        if (!key_exists('menus', $config)) {
46
            $config['menus'] = [];
47
        }
48 2
        $builder->setParameter('lag.admin.enable_extra_configuration', $enableExtraConfig);
49 2
        $builder->setParameter('lag.admin.application_configuration', $applicationConfig);
50 2
        $builder->setParameter('lag.admins', $adminsConfig);
51 2
        $builder->setParameter('lag.menus', $config['menus']);
52 2
        $builder->setParameter('lag.enable_menus', $config['application']['enable_menus']);
53
        $builder->setParameter('lag.admin.resources_path', $config['application']['resources_path']);
54
    }
55
56
    /**
57
     * @return string
58
     */
59
    public function getAlias()
60
    {
61
        return 'lag_admin';
62
    }
63
64
    public function prepend(ContainerBuilder $container)
65
    {
66
        $container->prependExtensionConfig('knp_menu', [
67
            'twig' => [
68
                'template' => '@LAGAdmin/Menu/left.html.twig',
69
            ],
70
        ]);
71
    }
72
}
73