Completed
Push — master ( 071097...7934b9 )
by
unknown
09:17
created

MediaMonksSonataMediaExtension::load()   B

Complexity

Conditions 5
Paths 8

Size

Total Lines 61
Code Lines 40

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 37
CRAP Score 5.0232

Importance

Changes 0
Metric Value
dl 0
loc 61
ccs 37
cts 41
cp 0.9024
rs 8.6806
c 0
b 0
f 0
cc 5
eloc 40
nc 8
nop 2
crap 5.0232

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
namespace MediaMonks\SonataMediaBundle\DependencyInjection;
4
5
use MediaMonks\SonataMediaBundle\MediaMonksSonataMediaBundle;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\Config\FileLocator;
8
use Symfony\Component\DependencyInjection\Reference;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
use Symfony\Component\DependencyInjection\Loader;
11
12
class MediaMonksSonataMediaExtension extends Extension
13
{
14
    /**
15
     * @param array $configs
16
     * @param ContainerBuilder $container
17
     */
18 1
    public function load(array $configs, ContainerBuilder $container)
19
    {
20 1
        $config = $this->processConfiguration(new Configuration(), $configs);
21 1
        $container->setParameter('mediamonks.sonata_media.config', $config);
22
23 1
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
24 1
        $loader->load('services.yml');
25
26 1
        $container->setAlias('mediamonks.sonata_media.filesystem.private', $config['filesystem_private']);
27 1
        $container->setAlias('mediamonks.sonata_media.filesystem.public', $config['filesystem_public']);
28
29 1
        if (!empty($config['model_class'])) {
30
            $container->getDefinition('mediamonks.sonata_media.admin.media')->replaceArgument(
31
                1,
32
                $config['model_class']
33
            );
34
            $container->setParameter('mediamonks.sonata_media.entity.class', $config['model_class']);
35
        }
36
37 1
        $container->getDefinition('mediamonks.sonata_media.glide.server')
38 1
            ->replaceArgument(
39 1
                0,
40 1
                array_merge(
41 1
                    $config['glide'],
42
                    [
43 1
                        'source' => new Reference($config['filesystem_private']),
44 1
                        'cache' => new Reference($config['filesystem_public']),
45
                    ]
46
                )
47
            );
48
49 1
        $container->getDefinition('mediamonks.sonata_media.provider.file')
50 1
            ->replaceArgument(0, $config['file_constraints']);
51
52 1
        $providerPool = $container->getDefinition('mediamonks.sonata_media.provider.pool');
53 1
        foreach ($config['providers'] as $provider) {
54 1
            $providerPool->addMethodCall('addProvider', [new Reference($provider)]);
55
        }
56
57 1
        $container->getDefinition('mediamonks.sonata_media.utility.image')
58 1
            ->replaceArgument(2, $config['redirect_url'])
59 1
            ->replaceArgument(3, $config['redirect_cache_ttl']);
60
61 1
        $container->getDefinition('mediamonks.sonata_media.utility.download')
62 1
            ->replaceArgument(0, new Reference($config['filesystem_private']));
63
64 1
        $container->getDefinition('mediamonks.sonata_media.generator.image')
65 1
            ->replaceArgument(2, $config['default_image_parameters'])
66 1
            ->replaceArgument(3, $config['fallback_image'])
67 1
            ->replaceArgument(4, $config['tmp_path'])
68 1
            ->replaceArgument(5, $config['tmp_prefix']);
69
70 1
        $formResource = $config['templates']['form'];
71 1
        $twigFormResourceParameterId = 'twig.form.resources';
72 1
        $twigFormResources = $container->getParameter($twigFormResourceParameterId);
73 1
        if (!empty($formResource) && !in_array($formResource, $twigFormResources)) {
74 1
            $twigFormResources[] = $formResource;
75
        }
76
77 1
        $container->setParameter($twigFormResourceParameterId, $twigFormResources);
78 1
    }
79
80
    /**
81
     * @return string
82
     */
83 1
    public function getAlias()
84
    {
85 1
        return MediaMonksSonataMediaBundle::BUNDLE_CONFIG_NAME;
86
    }
87
}
88