1 | <?php |
||
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->addModelClass($rootNode); |
||
23 | $this->addFilesystem($rootNode); |
||
24 | $this->addRedirectUrl($rootNode); |
||
25 | $this->addRedirectCacheTtl($rootNode); |
||
26 | $this->addProviders($rootNode); |
||
27 | $this->addGlideConfig($rootNode); |
||
28 | $this->addDefaultImageParameters($rootNode); |
||
29 | $this->addImageConstraints($rootNode); |
||
30 | $this->addFileConstraints($rootNode); |
||
31 | $this->addFallbackImage($rootNode); |
||
32 | $this->addTmp($rootNode); |
||
33 | $this->addTemplates($rootNode); |
||
34 | |||
35 | return $treeBuilder; |
||
36 | } |
||
37 | |||
38 | /** |
||
39 | * @param ArrayNodeDefinition $node |
||
40 | */ |
||
41 | private function addModelClass(ArrayNodeDefinition $node) |
||
42 | { |
||
43 | $node->children() |
||
44 | ->scalarNode('model_class') |
||
45 | ->end(); |
||
46 | } |
||
47 | |||
48 | /** |
||
49 | * @param ArrayNodeDefinition $node |
||
50 | */ |
||
51 | private function addFilesystem(ArrayNodeDefinition $node) |
||
52 | { |
||
53 | $node->children() |
||
54 | ->scalarNode('filesystem_private') |
||
55 | ->end(); |
||
56 | |||
57 | $node->children() |
||
58 | ->scalarNode('filesystem_public') |
||
59 | ->defaultNull() |
||
60 | ->end(); |
||
61 | } |
||
62 | |||
63 | /** |
||
64 | * @param ArrayNodeDefinition $node |
||
65 | */ |
||
66 | private function addRedirectUrl(ArrayNodeDefinition $node) |
||
67 | { |
||
68 | $node->children() |
||
69 | ->scalarNode('redirect_url') |
||
70 | ->defaultNull() |
||
71 | ->end(); |
||
72 | } |
||
73 | |||
74 | /** |
||
75 | * @param ArrayNodeDefinition $node |
||
76 | */ |
||
77 | private function addRedirectCacheTtl(ArrayNodeDefinition $node) |
||
84 | |||
85 | /** |
||
86 | * @param ArrayNodeDefinition $node |
||
87 | */ |
||
88 | private function addProviders(ArrayNodeDefinition $node) |
||
89 | { |
||
90 | $node->children() |
||
91 | ->arrayNode('providers') |
||
92 | ->defaultValue( |
||
93 | [ |
||
94 | 'mediamonks.sonata_media.provider.file', |
||
95 | 'mediamonks.sonata_media.provider.image', |
||
96 | 'mediamonks.sonata_media.provider.youtube', |
||
97 | 'mediamonks.sonata_media.provider.vimeo', |
||
98 | 'mediamonks.sonata_media.provider.soundcloud' |
||
99 | ] |
||
100 | ) |
||
101 | ->prototype('scalar')->end() |
||
102 | ->end(); |
||
103 | } |
||
104 | |||
105 | /** |
||
106 | * @param ArrayNodeDefinition $node |
||
107 | */ |
||
108 | private function addGlideConfig(ArrayNodeDefinition $node) |
||
109 | { |
||
110 | $node->children() |
||
111 | ->arrayNode('glide') |
||
112 | ->prototype('scalar')->end() |
||
113 | ->end(); |
||
114 | } |
||
115 | |||
116 | /** |
||
117 | * @param ArrayNodeDefinition $node |
||
118 | */ |
||
119 | private function addDefaultImageParameters(ArrayNodeDefinition $node) |
||
126 | |||
127 | /** |
||
128 | * @param ArrayNodeDefinition $node |
||
129 | */ |
||
130 | private function addImageConstraints(ArrayNodeDefinition $node) |
||
131 | { |
||
132 | $node->children() |
||
142 | |||
143 | /** |
||
144 | * @param ArrayNodeDefinition $node |
||
145 | */ |
||
146 | private function addFileConstraints(ArrayNodeDefinition $node) |
||
156 | |||
157 | /** |
||
158 | * @param ArrayNodeDefinition $node |
||
159 | */ |
||
160 | private function addFallbackImage(ArrayNodeDefinition $node) |
||
167 | |||
168 | /** |
||
169 | * @param ArrayNodeDefinition $node |
||
170 | */ |
||
171 | private function addTmp(ArrayNodeDefinition $node) |
||
183 | |||
184 | private function addTemplates(ArrayNodeDefinition $node) |
||
193 | } |
||
194 |