Completed
Push — master ( 798ea2...ca82f2 )
by Steevan
07:09
created

Configuration::getConfigTreeBuilder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 2
Metric Value
c 2
b 0
f 2
dl 0
loc 10
rs 9.4286
cc 1
eloc 6
nc 1
nop 0
1
<?php
2
3
namespace steevanb\DevBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\NodeBuilder;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
9
class Configuration implements ConfigurationInterface
10
{
11
    /**
12
     * @return TreeBuilder
13
     */
14
    public function getConfigTreeBuilder()
15
    {
16
        $treeBuilder = new TreeBuilder();
17
        $rootNode = $treeBuilder->root('dev');
18
19
        $this->addTranslationConfig($rootNode->children());
20
        $this->addValidateSchemaConfig($rootNode->children());
21
22
        return $treeBuilder;
23
    }
24
25
    /**
26
     * @param NodeBuilder $node
27
     */
28
    protected function addTranslationConfig(NodeBuilder $node)
29
    {
30
        $node
31
            ->arrayNode('translation_not_found')
32
                ->addDefaultsIfNotSet()
33
                ->children()
34
                    ->scalarNode('enabled')
35
                        ->defaultTrue()
36
                        ->validate()
37
                        ->ifNotInArray(array(true, false))
38
                            ->thenInvalid('Invalid value %s, boolean required.')
39
                        ->end()
40
                    ->end()
41
                    ->scalarNode('allow_fallbacks')
42
                        ->defaultFalse()
43
                        ->validate()
44
                        ->ifNotInArray(array(true, false))
45
                            ->thenInvalid('Invalid value %s, boolean required.')
46
                        ->end()
47
                    ->end()
48
                ->end()
49
            ->end()
50
        ;
51
    }
52
53
    /**
54
     * @param NodeBuilder $node
55
     */
56
    protected function addValidateSchemaConfig(NodeBuilder $node)
57
    {
58
        $node
59
            ->arrayNode('validate_schema')
60
                ->addDefaultsIfNotSet()
61
                ->children()
62
                    ->scalarNode('enabled')
63
                        ->defaultTrue()
64
                        ->validate()
65
                        ->ifNotInArray(array(true, false))
66
                            ->thenInvalid('Invalid value %s, boolean required.')
67
                        ->end()
68
                    ->end()
69
                    ->scalarNode('event')
70
                        ->defaultValue('kernel.request')
71
                        ->validate()
72
                        ->ifNotInArray(array('kernel.request', 'kernel.response'))
73
                            ->thenInvalid('Invalid value %s, should be kernel.request or kernel.response.')
74
                        ->end()
75
                    ->end()
76
                    ->arrayNode('excludes')
77
                        ->prototype('scalar')
78
                    ->end()
79
                ->end()
80
            ->end();
81
    }
82
}
83