Configuration   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 99
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 2
Metric Value
eloc 79
c 2
b 0
f 2
dl 0
loc 99
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 97 1
1
<?php
2
3
namespace GGGGino\SkuskuCartBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
/**
9
 * Class Configuration
10
 * @package Allyou\ManagementBundle\DependencyInjection
11
 */
12
class Configuration implements ConfigurationInterface
13
{
14
    public function getConfigTreeBuilder()
15
    {
16
        $treeBuilder = new TreeBuilder();
17
        $rootNode = $treeBuilder->root('ggggino_skuskucart');
18
19
        /** @var array $defaultSteps gli step minimi e di default */
20
        $defaultSteps = array(
21
            'cart' => array(
22
                'form_type' => 'GGGGino\SkuskuCartBundle\Form\CartFlowType\CartStep1FormType',
23
                'label' => 'cart_resume'
24
            ),
25
            'chosePayment' => array(
26
                'form_type' => 'GGGGino\SkuskuCartBundle\Form\CartFlowType\CartStep2FormType',
27
                'label' => 'chose_payment'
28
            ),
29
            'payment' => array(
30
                'form_type' => 'GGGGino\SkuskuCartBundle\Form\CartFlowType\CartStep3FormType',
31
                'label' => 'payment'
32
            )
33
        );
34
35
        /** @var array $defaultTemplates i template minimi */
36
        $defaultTemplates = array(
37
            'cart_layout' => 'GGGGinoSkuskuCartBundle::cart_page.html.twig'
38
        );
39
40
        $defaultExtraFields = array();
41
42
        $rootNode
43
            ->children()
44
                ->booleanNode('allow_anonymous_shop')
45
                    ->defaultTrue()
46
                ->end()
47
                ->booleanNode('additional_fields')
48
                    ->defaultTrue()
49
                ->end()                
50
                ->scalarNode('stepform_class')
51
                    ->defaultValue('GGGGino\SkuskuCartBundle\Form\CartFlow')
52
                ->end()
53
                ->enumNode('cart_mode')
54
                    ->values(array(
55
                        "single_page",
56
                        "steps",
57
                    ))
58
                    ->defaultValue('steps')
59
                ->end()                
60
                ->arrayNode('stepform')
61
                    ->defaultValue($defaultSteps)
62
                    ->treatNullLike($defaultSteps)
63
                    ->arrayPrototype()
64
                        ->children()
65
                            ->scalarNode('form_type')->end()
66
                            ->scalarNode('label')->end()
67
                        ->end()
68
                    ->end()
69
                    ->beforeNormalization()
70
                        ->always(function($items) use ($defaultSteps){
71
                            return array_merge($defaultSteps, $items);
72
                        })
73
                    ->end()
74
                ->end()
75
                ->arrayNode('extra_fields')
76
                    ->defaultValue($defaultExtraFields)
77
                    ->treatNullLike($defaultExtraFields)
78
                    ->arrayPrototype()
79
                        ->children()
80
                            ->scalarNode('id')->end()
81
                            ->scalarNode('type')->end()                            
82
                            ->scalarNode('label')->end()
83
                            ->scalarNode('class')->end()
84
                            ->scalarNode('required')->end()
85
                            ->scalarNode('data')->end()                            
86
                        ->end()
87
                    ->end()
88
                    ->beforeNormalization()
89
                        ->always(function($items) use ($defaultExtraFields){
90
                            return array_merge($defaultExtraFields, $items);
91
                        })
92
                    ->end()
93
                ->end()                
94
                ->arrayNode('templates')
95
                    ->defaultValue($defaultTemplates)
96
                    ->treatNullLike($defaultTemplates)
97
                    ->scalarPrototype()->end()
98
                    ->beforeNormalization()
99
                        ->always(function($items) use ($defaultTemplates){
100
                            return array_merge($defaultTemplates, $items);
101
                        })
102
                    ->end()
103
                ->end()
104
                ->scalarNode('redirect_after_done_route')
105
                    ->defaultNull()
106
                ->end()                
107
            ->end()
108
        ;
109
110
        return $treeBuilder;
111
    }
112
}
113