Configuration::getConfigTreeBuilder()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 20
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 23
ccs 0
cts 21
cp 0
crap 2
rs 9.6
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
                        ->scalarNode('state_machine')->end()
24
                    ->end()
25
                ->end()
26
                ->scalarNode('dispatch_events')->defaultTrue()->end()
27
                ->scalarNode('strict_mode')->defaultFalse()->end()
28
                ->scalarNode('alias')
29
                    ->defaultNull()
30
                    ->validate()
31
                        ->ifTrue(fn ($value) => 0 === preg_match('#^[a-zA-Z0-9_]+$#', $value))
32
                        ->thenInvalid('Alias should be a string containing letters and underscore. "%s" given')
33
                    ->end()
34
                ->end()
35
            ->end();
36
37
        return $treeBuilder;
38
    }
39
}
40