Configuration::getSourceFilePathNode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 10
rs 10
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