Configuration   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 3
dl 0
loc 29
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 21 1
1
<?php
2
3
namespace Flagbit\Bundle\CurrencyBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
class Configuration implements ConfigurationInterface
9
{
10
    /**
11
     * Generates the configuration tree builder.
12
     *
13
     * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder
14
     */
15 7
    public function getConfigTreeBuilder()
16
    {
17 7
        $treeBuilder = new TreeBuilder();
18 7
        $rootNode = $treeBuilder->root('flagbit_currency');
19
20
        $rootNode
21 7
            ->children()
22 7
                ->scalarNode('default_currency')
23 7
                    ->info('ISO 4217 currency code')
24 7
                    ->validate()
25 7
                        ->ifTrue(function ($v) {
26 5
                            return 1 !== preg_match('/^[A-Z]{3}$/', $v);
27 7
                        })
28 7
                        ->thenInvalid('Invalid currency code "%s"')
29 7
                    ->end()
30 7
                    ->defaultValue('EUR')
31 7
                ->end()
32 7
            ->end();
33
34 7
        return $treeBuilder;
35
    }
36
}
37