Passed
Push — master ( caaf65...a9856f )
by Yo
01:56
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
dl 0
loc 44
ccs 35
cts 35
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 42 1
1
<?php
2
namespace Yoanm\SymfonyJsonRpcHttpServer\DependencyInjection;
3
4
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
5
use Symfony\Component\Config\Definition\ConfigurationInterface;
6
7
class Configuration implements ConfigurationInterface
8
{
9 5
    public function getConfigTreeBuilder()
10
    {
11 5
        $treeBuilder = new TreeBuilder();
12
13 5
        $rootNode = $treeBuilder->root(JsonRpcHttpServerExtension::EXTENSION_IDENTIFIER);
14
15
        $rootNode
16 5
            ->children()
17 5
                ->variableNode('method_resolver')
18 5
                    ->info('Your custom method resolver service')
19 5
                    ->treatNullLike(false)
20 5
                    ->defaultFalse()
21 5
                ->end()
22 5
                ->arrayNode('methods_mapping')
23 5
                    ->requiresAtLeastOneElement()
24 5
                    ->normalizeKeys(false)
25 5
                    ->arrayPrototype()
26 5
                        ->beforeNormalization()
27
                            // Convert simple string to an array with the string as service
28 5
                            ->ifString()->then(function ($v) {
29 1
                                return ['service' => $v];
30 5
                            })
31 5
                        ->end()
32 5
                        ->children()
33 5
                            ->scalarNode('service')
34 5
                                ->isRequired()
35 5
                                ->cannotBeEmpty()
36 5
                            ->end()
37 5
                            ->arrayNode('aliases')
38 5
                                ->requiresAtLeastOneElement()
39 5
                                ->beforeNormalization()
40 5
                                    ->castToArray()
41 5
                                ->end()
42 5
                                ->scalarPrototype()->end()
43 5
                            ->end()
44 5
                        ->end()
45 5
                    ->end()
46 5
                ->end()
47 5
            ->end()
48
        ;
49
50 5
        return $treeBuilder;
51
    }
52
}
53