Configuration::addConfigurationNode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php declare(strict_types=1);
2
3
namespace Mgid\KafkaBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
6
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
7
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
8
use Symfony\Component\Config\Definition\ConfigurationInterface;
9
10
final class Configuration implements ConfigurationInterface
11
{
12
    /**
13
     * {@inheritdoc}
14
     */
15
    public function getConfigTreeBuilder()
16
    {
17
        $builder = new TreeBuilder(KafkaExtension::EXTENSION_ALIAS);
18
19
        /** @var ArrayNodeDefinition $rootNode */
20
        $rootNode = $builder->getRootNode();
21
22
        $this->addConfigurationNode($rootNode->children()->arrayNode('consumers')->addDefaultsIfNotSet());
23
        $this->addConfigurationNode($rootNode->children()->arrayNode('producers')->addDefaultsIfNotSet());
24
25
        return $builder;
26
    }
27
28
    /**
29
     * @param ArrayNodeDefinition $rootNode
30
     *
31
     * @return NodeDefinition
32
     */
33
    private function addConfigurationNode(ArrayNodeDefinition $rootNode): NodeDefinition
34
    {
35
        return $rootNode->children()->arrayNode('configuration')->prototype('variable');
36
    }
37
}
38