Completed
Push — master ( f413dd...7f4a11 )
by Ivo
08:26
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 1
c 2
b 0
f 1
lcom 0
cbo 2
dl 0
loc 47
ccs 7
cts 7
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 38 1
1
<?php
2
3
/*
4
 * This file is part of the Ivoaz ContentEditable bundle.
5
 *
6
 * (c) Ivo Azirjans <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace Ivoaz\Bundle\ContentEditableBundle\DependencyInjection;
13
14
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
15
use Symfony\Component\Config\Definition\ConfigurationInterface;
16
17
/**
18
 * @author Ivo Azirjans <[email protected]>
19
 */
20
class Configuration implements ConfigurationInterface
21
{
22
    const MODEL_ORM = 'orm';
23
    const MODEL_MONGODB = 'mongodb';
24
25 2
    /**
26
     * {@inheritdoc}
27 2
     */
28 2
    public function getConfigTreeBuilder()
29
    {
30
        $treeBuilder = new TreeBuilder();
31 2
        $rootNode = $treeBuilder->root('ivoaz_content_editable');
32 2
33 2
        $supportedModelTypes = [self::MODEL_ORM, self::MODEL_MONGODB];
34
35 2
        $rootNode
36
            ->addDefaultsIfNotSet()
37
            ->children()
38
39
                ->scalarNode('model_type')
40
                    ->validate()
41
                        ->ifNotInArray($supportedModelTypes)
42
                        ->thenInvalid(
43
                            sprintf(
44
                                'The model type "%%s" is not supported. Please use one of the following model type: %s.',
45
                                implode(', ', $supportedModelTypes)
46
                            )
47
                        )
48
                    ->end()
49
                    ->cannotBeEmpty()
50
                    ->defaultValue(self::MODEL_ORM)
51
                ->end()
52
53
                ->scalarNode('model_manager_name')
54
                    ->defaultValue(null)
55
                ->end()
56
57
                ->scalarNode('editor')
58
                    ->cannotBeEmpty()
59
                    ->defaultValue('ivoaz_content_editable.default_editor')
60
                ->end()
61
62
            ->end();
63
64
        return $treeBuilder;
65
    }
66
}
67