Passed
Branch ci_setup (6efa95)
by Mattia
12:10 queued 13s
created

Configuration::getConfigTreeBuilder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 31
Code Lines 28

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 28
nc 1
nop 0
dl 0
loc 31
ccs 0
cts 4
cp 0
crap 2
rs 9.472
c 0
b 0
f 0
1
<?php
2
3
namespace Cypress\PatchManager\Bundle\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
     * Generates the configuration tree builder.
12
     *
13
     * @return TreeBuilder The tree builder
14
     */
15
    public function getConfigTreeBuilder(): TreeBuilder
16
    {
17
        $treeBuilder = new TreeBuilder('patch_manager');
18
        $treeBuilder->getRootNode()
19
            ->children()
20
                ->arrayNode('handlers')
21
                    ->addDefaultsIfNotSet()
22
                    ->children()
23
                        ->arrayNode('data')
24
                            ->addDefaultsIfNotSet()
25
                            ->children()
26
                                ->scalarNode('entity_manager')->defaultValue('default')->end()
27
                                ->scalarNode('doctrine')->defaultTrue()->end()
28
                                ->scalarNode('magic_call')->defaultFalse()->end()
29
                            ->end()
30
                        ->end()
31
                        ->scalarNode('state_machine')->end()
32
                    ->end()
33
                ->end()
34
                ->scalarNode('dispatch_events')->defaultTrue()->end()
35
                ->scalarNode('strict_mode')->defaultFalse()->end()
36
                ->scalarNode('alias')
37
                    ->defaultNull()
38
                    ->validate()
39
                        ->ifTrue(fn ($value) => 0 === preg_match('#^[a-zA-Z0-9_]+$#', $value))
40
                        ->thenInvalid('Alias should be a string containing letters and underscore. "%s" given')
41
                    ->end()
42
                ->end()
43
            ->end();
44
45
        return $treeBuilder;
46
    }
47
}
48