Configuration   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 25
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 11 1
A getSourceFilePathNode() 0 10 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gnutix\Library\DependencyInjection;
6
7
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
8
use Symfony\Component\Config\Definition\Builder\ScalarNodeDefinition;
9
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
10
use Symfony\Component\Config\Definition\ConfigurationInterface;
11
use Webmozart\Assert\Assert;
12
13
final class Configuration implements ConfigurationInterface
14
{
15
    public function getConfigTreeBuilder(): TreeBuilder
16
    {
17
        $treeBuilder = new TreeBuilder('gnutix_library');
18
19
        /** @var ArrayNodeDefinition $rootNode */
20
        $rootNode = $treeBuilder->getRootNode();
21
        Assert::isInstanceOf($rootNode, ArrayNodeDefinition::class);
22
23
        $rootNode->append($this->getSourceFilePathNode());
24
25
        return $treeBuilder;
26
    }
27
28
    private function getSourceFilePathNode(): ScalarNodeDefinition
29
    {
30
        $treeBuilder = new TreeBuilder('source_file_path', 'scalar');
31
        /** @var ScalarNodeDefinition $node */
32
        $node = $treeBuilder->getRootNode();
33
        Assert::isInstanceOf($node, ScalarNodeDefinition::class);
34
35
        $node->isRequired()->cannotBeEmpty();
36
37
        return $node;
38
    }
39
}
40