Configuration   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 21
c 0
b 0
f 0
dl 0
loc 30
ccs 0
cts 21
cp 0
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 23 1
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