PsiDescriptionExtension::load()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 13
nc 2
nop 2
1
<?php
2
3
namespace Psi\Bundle\Description\DependencyInjection;
4
5
use Symfony\Component\Config\FileLocator;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Loader;
8
use Symfony\Component\DependencyInjection\Reference;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
11
class PsiDescriptionExtension extends Extension
12
{
13
    /**
14
     * {@inheritdoc}
15
     */
16
    public function load(array $configs, ContainerBuilder $container)
17
    {
18
        $configuration = new Configuration();
19
        $config = $this->processConfiguration($configuration, $configs);
20
21
        $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
22
        $loader->load('services.xml');
23
        $loader->load('twig.xml');
24
        $loader->load('console.xml');
25
26
        $factoryDef = $container->getDefinition('psi_description.factory');
27
28
        if ($config['schema']['enabled']) {
29
            $factoryDef->replaceArgument(1, new Reference('psi_description.schema'));
30
        }
31
32
        $container->setParameter('psi_description.enhancers', $config['enhancers']);
33
        $container->setParameter('psi_description.subject_resolvers', $config['subject_resolvers']);
34
        $container->setParameter('psi_description.schema.extensions', $config['schema']['extensions']);
35
    }
36
}
37