Completed
Pull Request — master (#37)
by Yann
01:32
created

Configuration::root()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2.1481

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 4
cts 6
cp 0.6667
rs 9.8666
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2.1481
1
<?php
2
3
namespace Yokai\SecurityTokenBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
use Symfony\Component\HttpKernel\Kernel;
9
10
/**
11
 * @author Yann Eugoné <[email protected]>
12
 */
13
class Configuration implements ConfigurationInterface
14
{
15
    /**
16
     * @inheritdoc
17
     */
18 4
    public function getConfigTreeBuilder()
19
    {
20 4
        if (version_compare(Kernel::VERSION, '4.2') >= 0) {
21
            $builder = new TreeBuilder('yokai_security_token');
22
            $root = $builder->getRootNode();
23
        } else {
24 4
            $builder = new TreeBuilder();
25 4
            $root = $builder->root('yokai_security_token');
26
        }
27
28 4
        $root->addDefaultsIfNotSet();
29
        $root
30 4
            ->children()
31 4
                ->append($this->getTokensNode())
32 4
                ->append($this->getServicesNode())
33 4
            ->end()
34
        ;
35
36 4
        return $builder;
37
    }
38
39
    /**
40
     * @return NodeDefinition
41
     */
42 4
    private function getTokensNode()
43
    {
44 4
        $node = $this->root('tokens');
45
46
        $node
0 ignored issues
show
Bug introduced by
The method useAttributeAsKey() does not exist on Symfony\Component\Config...\Builder\NodeDefinition. Did you maybe mean attribute()?

This check marks calls to methods that do not seem to exist on an object.

This is most likely the result of a method being renamed without all references to it being renamed likewise.

Loading history...
47 4
            ->useAttributeAsKey('purpose')
48 4
            ->prototype('array')
49 4
                ->children()
50 4
                    ->scalarNode('generator')
51 4
                        ->defaultValue('yokai_security_token.open_ssl_token_generator')
52 4
                    ->end()
53 4
                    ->scalarNode('duration')
54 4
                        ->defaultValue('+2 days')
55 4
                    ->end()
56 4
                    ->integerNode('usages')
57 4
                        ->defaultValue(1)
58 4
                    ->end()
59 4
                    ->scalarNode('keep')
60 4
                        ->defaultValue('+1 month')
61 4
                    ->end()
62 4
                    ->booleanNode('unique')
63 4
                        ->defaultValue(false)
64 4
                    ->end()
65 4
                ->end()
66 4
            ->end()
67
        ;
68
69 4
        return $node;
70
    }
71
72
    /**
73
     * @return NodeDefinition
74
     */
75 4
    private function getServicesNode()
76
    {
77 4
        $node = $this->root('services');
78
79 4
        $node->addDefaultsIfNotSet();
80
        $node
81 4
            ->children()
82 4
                ->scalarNode('information_guesser')
83 4
                    ->defaultValue('yokai_security_token.default_information_guesser')
84 4
                ->end()
85 4
                ->scalarNode('token_factory')
86 4
                    ->defaultValue('yokai_security_token.default_token_factory')
87 4
                ->end()
88 4
                ->scalarNode('token_repository')
89 4
                    ->defaultValue('yokai_security_token.default_token_repository')
90 4
                ->end()
91 4
                ->scalarNode('token_manager')
92 4
                    ->defaultValue('yokai_security_token.default_token_manager')
93 4
                ->end()
94 4
                ->scalarNode('archivist')
95 4
                    ->defaultValue('yokai_security_token.delete_archivist')
96 4
                ->end()
97 4
            ->end()
98
        ;
99
100 4
        return $node;
101
    }
102
103 4
    private function root($name)
104
    {
105 4
        if (version_compare(Kernel::VERSION, '4.2') >= 0) {
106
            $builder = new TreeBuilder($name);
107
108
            return $builder->getRootNode();
109
        }
110
111 4
        $builder = new TreeBuilder();
112
113 4
        return $builder->root($name);
114
    }
115
}
116