NorsysSeoExtension   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 35
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A load() 0 21 1
A getBundleConfigurationDir() 0 3 1
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