Completed
Push — master ( 200f8d...5bfc11 )
by Peter
02:44
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 39 1
1
<?php
2
/**
3
 * AnimeDb package.
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2011, Peter Gribanov
7
 * @license   http://opensource.org/licenses/GPL-3.0 GPL v3
8
 */
9
10
namespace AnimeDb\Bundle\AniDbBrowserBundle\DependencyInjection;
11
12
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
13
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
14
use Symfony\Component\Config\Definition\ConfigurationInterface;
15
16
class Configuration implements ConfigurationInterface
17
{
18
    /**
19
     * Config tree builder.
20
     *
21
     * Example config:
22
     *
23
     * anime_db_ani_db_browser:
24
     *     api:
25
     *         host: 'http://api.anidb.net:9001'
26
     *         prefix: '/httpapi/'
27
     *         protover: 1
28
     *     app:
29
     *         version: 2
30
     *         client: 'animedbplugin'
31
     *         code: 'api-team-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
32
     *
33
     * @return ArrayNodeDefinition
34
     */
35 3
    public function getConfigTreeBuilder()
36
    {
37 3
        return (new TreeBuilder())
38 3
            ->root('anime_db_ani_db_browser')
39 3
                ->children()
40 3
                    ->arrayNode('api')
41 3
                        ->addDefaultsIfNotSet()
42 3
                        ->children()
43 3
                            ->scalarNode('host')
44 3
                                ->defaultValue('http://api.anidb.net:9001')
45 3
                                ->cannotBeEmpty()
46 3
                            ->end()
47 3
                            ->scalarNode('prefix')
48 3
                                ->defaultValue('/httpapi/')
49 3
                                ->cannotBeEmpty()
50 3
                            ->end()
51 3
                            ->scalarNode('protover')
52 3
                                ->defaultValue('1')
53 3
                                ->cannotBeEmpty()
54 3
                            ->end()
55 3
                        ->end()
56 3
                    ->end()
57 3
                    ->arrayNode('app')
58 3
                        ->children()
59 3
                            ->scalarNode('version')
60 3
                                ->cannotBeEmpty()
61 3
                            ->end()
62 3
                            ->scalarNode('client')
63 3
                                ->cannotBeEmpty()
64 3
                            ->end()
65 3
                            ->scalarNode('code')
66 3
                                ->cannotBeEmpty()
67 3
                            ->end()
68 3
                        ->end()
69 3
                    ->end()
70 3
                ->end()
71 3
            ->end()
72
        ;
73
    }
74
}
75