NorsysSeoExtension::load()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 15
nc 1
nop 2
dl 0
loc 21
rs 9.7666
c 0
b 0
f 0
1
<?php
2
declare(strict_types = 1);
3
4
namespace Norsys\SeoBundle\DependencyInjection;
5
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension as BaseExtension;
10
11
use Norsys\SeoBundle\DependencyInjection\Config\ExtendFromDefaults as ExtendConfigFromDefaults;
12
13
/**
14
 * SeoBundle extension
15
 * Load proper SEO config in container
16
 **/
17
class NorsysSeoExtension extends BaseExtension
18
{
19
    /**
20
     * @param array            $configs
21
     * @param ContainerBuilder $container
22
     */
23
    public function load(array $configs, ContainerBuilder $container)
24
    {
25
        $configuration = $this->getConfiguration($configs, $container);
26
        $config        = $this->processConfiguration($configuration, $configs);
27
28
        $extendConfigFromDefaults = new ExtendConfigFromDefaults;
29
        $config = $extendConfigFromDefaults($config);
30
31
        $container->setParameter('norsys.seo.translation', $config['translation']);
32
        $container->setParameter('norsys.seo.translation.enabled', $config['translation']['enabled']);
33
        $container->setParameter('norsys.seo.translation.default_domain', $config['translation']['domain']);
34
        $container->setParameter('norsys.seo.metas', $config['metas']);
35
        $container->setParameter('norsys.seo.title', $config['title']);
36
        $container->setParameter('norsys.seo.links', $config['links']);
37
        $container->setParameter(
38
            'norsys.seo.rewrite.remove_trailing_slash',
39
            $config['rewrite']['remove_trailing_slash']
40
        );
41
42
        $loader = new YamlFileLoader($container, new FileLocator($this->getBundleConfigurationDir()));
43
        $loader->load('services.yml');
44
    }
45
46
    /**
47
     * @return string
48
     */
49
    private function getBundleConfigurationDir() : string
50
    {
51
        return sprintf('%s/../Resources/config', __DIR__);
52
    }
53
}
54