Configuration   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 3
eloc 59
c 2
b 1
f 0
dl 0
loc 73
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 68 3
1
<?php declare(strict_types=1);
2
3
namespace Actiane\EntityChangeWatchBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
class Configuration implements ConfigurationInterface
9
{
10
    /**
11
     * {@inheritDoc}
12
     */
13
    public function getConfigTreeBuilder(): TreeBuilder
14
    {
15
        $treeBuilder = new TreeBuilder('entity_change_watch');
16
17
        $rootNode = $treeBuilder->getRootNode();
18
19
        $rootNode->children()
20
                    ->arrayNode('classes')->validate()->ifTrue(function ($classes) {
21
22
                    foreach ($classes as $key => $value) {
23
                        if (!class_exists($key)) {
24
                            return $key;
25
                        }
26
                    }
27
28
                    return false;
29
                })->thenInvalid('Class not found')->end()
30
                        ->prototype('array')
31
                            ->children()
32
                                ->arrayNode('update')
33
                                    ->children()
34
                                        ->arrayNode('all')
35
                                            ->prototype('array')
36
                                                ->children()
37
                                                    ->scalarNode('name')->end()
38
                                                    ->scalarNode('method')->end()
39
                                                    ->scalarNode('flush')->defaultTrue()->end()
40
                                                ->end()
41
                                            ->end()
42
                                        ->end()
43
                                        ->arrayNode('properties')
44
                                            ->prototype('array')
45
                                                ->prototype('array')
46
                                                    ->children()
47
                                                        ->scalarNode('name')->end()
48
                                                        ->scalarNode('method')->end()
49
                                                        ->scalarNode('flush')->defaultTrue()->end()
50
                                                    ->end()
51
                                                ->end()
52
                                            ->end()
53
                                        ->end()
54
                                    ->end()
55
                                ->end()
56
                                ->arrayNode('create')
57
                                    ->prototype('array')
58
                                        ->children()
59
                                            ->scalarNode('name')->end()
60
                                            ->scalarNode('method')->end()
61
                                            ->scalarNode('flush')->defaultTrue()->end()
62
                                        ->end()
63
                                    ->end()
64
                                ->end()
65
                                ->arrayNode('delete')
66
                                    ->prototype('array')
67
                                        ->children()
68
                                            ->scalarNode('name')->end()
69
                                            ->scalarNode('method')->end()
70
                                            ->scalarNode('flush')->defaultTrue()->end()
71
                                        ->end()
72
                                    ->end()
73
                                ->end()
74
                            ->end()
75
                        ->end()
76
                    ->end()
77
                    ->end()
78
        ;
79
80
        return $treeBuilder;
81
    }
82
}
83