Completed
Push — master ( 162ac8...74252e )
by
unknown
19:44
created

MediaMonksSonataMediaExtension::getAlias()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
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
    public function load(array $configs, ContainerBuilder $container)
19
    {
20
        $config = $this->processConfiguration(new Configuration(), $configs);
21
        $container->setParameter('mediamonks.sonata_media.config', $config);
22
23
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
24
        $loader->load('services.yml');
25
26
        $container->setAlias('mediamonks.sonata_media.filesystem.private', $config['filesystem_private']);
27
        $container->setAlias('mediamonks.sonata_media.filesystem.public', $config['filesystem_public']);
28
29
        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
        $container->getDefinition('mediamonks.sonata_media.glide.server')
38
            ->replaceArgument(
39
                0,
40
                array_merge(
41
                    $config['glide'],
42
                    [
43
                        'source' => new Reference($config['filesystem_private']),
44
                        'cache' => new Reference($config['filesystem_public']),
45
                    ]
46
                )
47
            );
48
49
        $container->getDefinition('mediamonks.sonata_media.provider.file')
50
            ->replaceArgument(0, $config['file_constraints']);
51
52
        $providerPool = $container->getDefinition('mediamonks.sonata_media.provider.pool');
53
        foreach ($config['providers'] as $provider) {
54
            $providerPool->addMethodCall('addProvider', [new Reference($provider)]);
55
        }
56
57
        $container->getDefinition('mediamonks.sonata_media.utility.image')
58
            ->replaceArgument(2, $config['redirect_url'])
59
            ->replaceArgument(3, $config['redirect_cache_ttl']);
60
61
        $container->getDefinition('mediamonks.sonata_media.utility.download')
62
            ->replaceArgument(0, new Reference($config['filesystem_private']));
63
64
        $container->getDefinition('mediamonks.sonata_media.generator.image')
65
            ->replaceArgument(2, $config['default_image_parameters'])
66
            ->replaceArgument(3, $config['fallback_image'])
67
            ->replaceArgument(4, $config['tmp_path'])
68
            ->replaceArgument(5, $config['tmp_prefix']);
69
70
        $formResource = $config['templates']['form'];
71
        $twigFormResourceParameterId = 'twig.form.resources';
72
        $twigFormResources = $container->getParameter($twigFormResourceParameterId);
73
        if (!empty($formResource) && !in_array($formResource, $twigFormResources)) {
74
            $twigFormResources[] = $formResource;
75
        }
76
77
        $container->setParameter($twigFormResourceParameterId, $twigFormResources);
78
    }
79
80
    /**
81
     * @return string
82
     */
83
    public function getAlias()
84
    {
85
        return MediaMonksSonataMediaBundle::BUNDLE_CONFIG_NAME;
86
    }
87
}
88