Configuration::addValidateSchemaConfig()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 50

Duplication

Lines 0
Ratio 0 %

Importance

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