Completed
Push — 2.x ( 359f6e )
by Sullivan
14:45
created

SonataDoctrineORMAdminExtension::load()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 33
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 1
Metric Value
dl 0
loc 33
rs 8.8571
c 2
b 1
f 1
cc 2
eloc 19
nc 2
nop 2
1
<?php
2
3
/*
4
 * This file is part of the Sonata project.
5
 *
6
 * (c) Thomas Rabaix <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Sonata\DoctrineORMAdminBundle\DependencyInjection;
13
14
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
15
use Symfony\Component\DependencyInjection\ContainerBuilder;
16
use Symfony\Component\DependencyInjection\Definition;
17
use Sonata\AdminBundle\DependencyInjection\AbstractSonataAdminExtension;
18
19
use Symfony\Component\Config\FileLocator;
20
use Symfony\Component\Config\Definition\Processor;
21
22
/**
23
 * SonataAdminBundleExtension
24
 *
25
 * @author      Thomas Rabaix <[email protected]>
26
 * @author      Michael Williams <[email protected]>
27
 */
28
class SonataDoctrineORMAdminExtension extends AbstractSonataAdminExtension
29
{
30
    /**
31
     *
32
     * @param array            $configs   An array of configuration settings
33
     * @param ContainerBuilder $container A ContainerBuilder instance
34
     */
35
    public function load(array $configs, ContainerBuilder $container)
36
    {
37
        $configs = $this->fixTemplatesConfiguration($configs, $container);
38
39
        $configuration = new Configuration();
40
        $processor     = new Processor();
41
        $config        = $processor->processConfiguration($configuration, $configs);
42
43
        $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
44
        $loader->load('doctrine_orm.xml');
45
        $loader->load('doctrine_orm_filter_types.xml');
46
47
        $bundles = $container->getParameter('kernel.bundles');
48
49
        if (isset($bundles['SimpleThingsEntityAuditBundle'])) {
50
            $loader->load('audit.xml');
51
52
            $container->setParameter('sonata_doctrine_orm_admin.audit.force', $config['audit']['force']);
53
        }
54
55
        $loader->load('security.xml');
56
57
        $container->setParameter('sonata_doctrine_orm_admin.entity_manager', $config['entity_manager']);
58
59
        $container->setParameter('sonata_doctrine_orm_admin.templates', $config['templates']);
60
61
        // define the templates
62
        $container->getDefinition('sonata.admin.builder.orm_list')
63
            ->replaceArgument(1, $config['templates']['types']['list']);
64
65
        $container->getDefinition('sonata.admin.builder.orm_show')
66
            ->replaceArgument(1, $config['templates']['types']['show']);
67
    }
68
}
69