Test Setup Failed
Branch 0.x (5da7af)
by Pavel
13:48
created

VesloAnthillExtension::load()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 56

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 56
rs 8.9599
c 0
b 0
f 0
cc 2
nc 2
nop 2

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/*
4
 * This file is part of the Veslo project <https://github.com/symfony-doge/veslo>.
5
 *
6
 * (C) 2019 Pavel Petrov <[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
 * @license https://opensource.org/licenses/GPL-3.0 GPL-3.0
12
 */
13
14
declare(strict_types=1);
15
16
namespace Veslo\AnthillBundle\DependencyInjection;
17
18
use Symfony\Component\Config\FileLocator;
19
use Symfony\Component\DependencyInjection\ContainerBuilder;
20
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
21
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
22
23
/**
24
 * AnthillBundle dependency injection extension.
25
 */
26
class VesloAnthillExtension extends Extension
27
{
28
    /**
29
     * {@inheritdoc}
30
     */
31
    public function load(array $configs, ContainerBuilder $container)
32
    {
33
        $locator = new FileLocator(__DIR__ . implode(DIRECTORY_SEPARATOR, ['', '..', 'Resources']));
34
        $loader  = new YamlFileLoader($container, $locator);
35
36
        $configFiles = [
37
            'commands.yml',
38
            'controllers.yml',
39
            'event_listeners.yml',
40
            'entity_repositories.yml',
41
            'entity_creators.yml',
42
            'providers.yml',
43
            'normalizers.yml',
44
            'fixtures.yml',
45
            'roadmaps.yml',
46
            'scanner_pools.yml',
47
            'workers.yml',
48
            'queues.yml',
49
            'menu.yml',
50
            'services.yml',
51
        ];
52
53
        foreach ($configFiles as $configFile) {
54
            $loader->load('config' . DIRECTORY_SEPARATOR . $configFile);
55
        }
56
57
        $configuration = new Configuration();
58
        $config        = $this->processConfiguration($configuration, $configs);
59
60
        // Digging parameters.
61
        $container->setParameter(
62
            'veslo.anthill.vacancy.digging.roadmap.attempts_until_pause',
63
            $config['vacancy']['digging']['roadmap']['attempts_until_pause']
64
        );
65
        $container->setParameter(
66
            'veslo.anthill.vacancy.digging.roadmap.pause_duration',
67
            $config['vacancy']['digging']['roadmap']['pause_duration']
68
        );
69
70
        // Provider options.
71
        $container->setParameter(
72
            'veslo.anthill.vacancy.provider.options',
73
            [
74
                'per_page' => $config['vacancy']['provider']['per_page'],
75
            ]
76
        );
77
78
        // Vacancy repository options.
79
        $container->setParameter(
80
            'veslo.anthill.vacancy_repository.options',
81
            [
82
                'cache_result_namespace' => $config['vacancy']['repository']['cache_result_namespace'],
83
                'cache_result_lifetime'  => $config['vacancy']['repository']['cache_result_lifetime'],
84
            ]
85
        );
86
    }
87
}
88