Configuration   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 6
Bugs 2 Features 0
Metric Value
wmc 2
c 6
b 2
f 0
lcom 0
cbo 4
dl 0
loc 74
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 29 1
B addEmailsSection() 0 33 1
1
<?php
2
3
namespace DoS\MailerBundle\DependencyInjection;
4
5
use DoS\ResourceBundle\DependencyInjection\AbstractResourceConfiguration;
6
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
7
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
8
9
class Configuration extends AbstractResourceConfiguration
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    public function getConfigTreeBuilder()
15
    {
16
        $treeBuilder = new TreeBuilder();
17
        $rootNode = $treeBuilder->root('dos_mailer');
18
19
        $rootNode
20
            ->children()
21
                ->scalarNode('sender_adapter')->defaultValue('sylius.email_sender.adapter.swiftmailer')->end()
22
                ->scalarNode('renderer_adapter')->defaultValue('dos.mailer.renderer_adapter')->end()
23
            ->end()
24
        ;
25
26
        $this->setDefaults($rootNode, array(
27
            'resources' => array(
28
                'email' => array(
29
                    'classes' => array(
30
                        'model' => 'DoS\MailerBundle\Model\Email',
31
                        'form' => array(
32
                            'default' => 'DoS\MailerBundle\Form\Type\EmailType',
33
                        ),
34
                    ),
35
                ),
36
            ),
37
        ));
38
39
        $this->addEmailsSection($rootNode);
40
41
        return $treeBuilder;
42
    }
43
44
    /**
45
     * @param ArrayNodeDefinition $node
46
     *
47
     * @return ArrayNodeDefinition
48
     */
49
    protected function addEmailsSection(ArrayNodeDefinition $node)
50
    {
51
        $node
52
            ->children()
53
                ->arrayNode('sender')
54
                    ->addDefaultsIfNotSet()
55
                    ->children()
56
                        ->scalarNode('name')->defaultValue('%dos.mailer.sender.name%')->end()
57
                        ->scalarNode('address')->defaultValue('%dos.mailer.sender.address%')->end()
58
                    ->end()
59
                ->end()
60
                ->arrayNode('emails')
61
                    ->useAttributeAsKey('code')
62
                    ->prototype('array')
63
                        ->children()
64
                            ->scalarNode('subject')->cannotBeEmpty()->end()
65
                            ->scalarNode('template')->cannotBeEmpty()->end()
66
                            ->booleanNode('enabled')->defaultTrue()->end()
67
                            ->arrayNode('sender')
68
                                ->children()
69
                                    ->scalarNode('name')->end()
70
                                    ->scalarNode('address')->end()
71
                                ->end()
72
                            ->end()
73
                        ->end()
74
                    ->end()
75
                ->end()
76
                ->arrayNode('templates')
77
                    ->prototype('scalar')->end()
78
                ->end()
79
            ->end()
80
        ;
81
    }
82
}
83