Completed
Push — master ( 96a08e...d1f765 )
by
unknown
04:59
created

Configuration::addDefaultImageParameters()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 7
ccs 0
cts 7
cp 0
rs 9.4285
cc 1
eloc 5
nc 1
nop 1
crap 2
1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\DependencyInjection;
4
5
use MediaMonks\SonataMediaBundle\MediaMonksSonataMediaBundle;
6
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
7
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
8
use Symfony\Component\Config\Definition\ConfigurationInterface;
9
10
final class Configuration implements ConfigurationInterface
11
{
12
    /**
13
     * Generates the configuration tree.
14
     *
15
     * @return TreeBuilder
16
     */
17
    public function getConfigTreeBuilder()
18
    {
19
        $treeBuilder = new TreeBuilder();
20
        $rootNode = $treeBuilder->root(MediaMonksSonataMediaBundle::BUNDLE_CONFIG_NAME);
21
22
        $this->addFilesystem($rootNode);
23
        $this->addRedirectUrl($rootNode);
24
        $this->addRedirectCacheTtl($rootNode);
25
        $this->addProviders($rootNode);
26
        $this->addGlideConfig($rootNode);
27
        $this->addDefaultImageParameters($rootNode);
28
29
        return $treeBuilder;
30
    }
31
32
    /**
33
     * @param ArrayNodeDefinition $node
34
     */
35
    private function addFilesystem(ArrayNodeDefinition $node)
36
    {
37
        $node->children()
38
            ->scalarNode('filesystem')
39
            ->end();
40
41
        $node->children()
42
            ->scalarNode('filesystem_cache')
43
            ->defaultNull()
44
            ->end();
45
    }
46
47
    /**
48
     * @param ArrayNodeDefinition $node
49
     */
50
    private function addRedirectUrl(ArrayNodeDefinition $node)
51
    {
52
        $node->children()
53
            ->scalarNode('redirect_url')
54
            ->defaultNull()
55
            ->end();
56
    }
57
58
    /**
59
     * @param ArrayNodeDefinition $node
60
     */
61
    private function addRedirectCacheTtl(ArrayNodeDefinition $node)
62
    {
63
        $node->children()
64
            ->scalarNode('redirect_cache_ttl')
65
            ->defaultValue(60 * 60 * 24 * 90)// 90 days
66
            ->end();
67
    }
68
69
    /**
70
     * @param ArrayNodeDefinition $node
71
     */
72
    private function addProviders(ArrayNodeDefinition $node)
73
    {
74
        $node->children()
75
            ->arrayNode('providers')
76
            ->defaultValue(
77
                [
78
                    'mediamonks.sonata_media.provider.image',
79
                    'mediamonks.sonata_media.provider.youtube',
80
                ]
81
            )
82
            ->prototype('scalar')->end()
83
            ->end();
84
    }
85
86
    /**
87
     * @param ArrayNodeDefinition $node
88
     */
89
    private function addGlideConfig(ArrayNodeDefinition $node)
90
    {
91
        $node->children()
92
            ->arrayNode('glide')
93
            ->prototype('scalar')->end()
94
            ->end();
95
    }
96
97
    /**
98
     * @param ArrayNodeDefinition $node
99
     */
100
    private function addDefaultImageParameters(ArrayNodeDefinition $node)
101
    {
102
        $node->children()
103
            ->arrayNode('default_image_parameters')
104
            ->prototype('scalar')->end()
105
            ->end();
106
    }
107
}
108