Configuration   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 55
dl 0
loc 68
rs 10
c 1
b 0
f 0
ccs 0
cts 54
cp 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 61 1
1
<?php
2
3
namespace PiedWeb\CMSBundle\DependencyInjection;
4
5
use PiedWeb\CMSBundle\Entity\PageMainContentType;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
9
class Configuration implements ConfigurationInterface
10
{
11
    const DEFAULT_TEMPLATE = '@PiedWebCMSBundle';
12
13
    /**
14
     * php bin/console config:dump-reference PiedWebCMSBundle.
15
     */
16
    public function getConfigTreeBuilder()
17
    {
18
        $treeBuilder = new TreeBuilder('piedweb_cms');
19
        $treeBuilder
20
            ->getRootNode()
21
                ->children()
22
                    ->scalarNode('media_dir_absolute') // NOT USED ??
23
                        ->defaultValue('%kernel.project_dir%/media')
24
                        ->cannotBeEmpty()
25
                    ->end()
26
                    ->scalarNode('locale')->defaultValue('%locale%')->cannotBeEmpty()->end()
27
                    ->scalarNode('locales')->defaultValue('fr|en')->end()
28
                    ->scalarNode('dir') // not explicit = public dir/web dir
29
                        ->defaultValue('%kernel.project_dir%/public')
30
                        ->cannotBeEmpty()
31
                    ->end()
32
                    ->scalarNode('name')->defaultValue('PiedWeb.com')->end()
33
                    ->booleanNode('default_locale_without_prefix')->defaultTrue()->end()
34
                    ->booleanNode('main_content_twig')->defaultTrue()->end()
35
                    ->integerNode('main_content_type_default')->defaultValue(PageMainContentType::MARKDOWN)->end()
36
                    ->scalarNode('template')->defaultValue(self::DEFAULT_TEMPLATE)->end()
37
                    ->scalarNode('entity_page')->defaultValue('App\Entity\Page')->cannotBeEmpty()->end()
38
                    ->scalarNode('entity_media')->defaultValue('App\Entity\Media')->cannotBeEmpty()->end()
39
                    ->scalarNode('entity_user')->defaultValue('App\Entity\User')->cannotBeEmpty()->end()
40
                    ->scalarNode('entity_pagehasmedia')
41
                        ->defaultValue('App\Entity\PageHasMedia')
42
                        ->cannotBeEmpty()
43
                    ->end()
44
                    ->scalarNode('page_update_notification_email')
45
                        ->info('Adress email to notify when a page is created or updated')
46
                        ->defaultNull()
47
                    ->end()
48
                    ->scalarNode('page_update_notification_interval')
49
                        ->defaultValue('PT6H')
50
                        ->info('minIntervalBetweenTwoNotification')
51
                    ->end()
52
                    // For Fos User and maybe other bundle
53
                    ->scalarNode('email_sender')->defaultValue('[email protected]')->cannotBeEmpty()->end()
54
                    ->scalarNode('email_sender_name')->defaultValue('PiedWebCMS')->cannotBeEmpty()->end()
55
                    ->arrayNode('apps')->requiresAtLeastOneElement()
56
                        ->arrayPrototype()
57
                            ->children()
58
                                ->scalarNode('base_url')->defaultValue('')->end()
59
                                // For Static Website Generation : Bug ? If I put it under a new array, it's
60
                                // not autocomplte with default value
61
                                ->scalarNode('static_dir')->defaultValue('%kernel.project_dir%/static')->end()
62
                                ->booleanNode('static_generateForApache')->defaultTrue()->end()
63
                                ->booleanNode('static_generateForGithubPages')->defaultFalse()->end()
64
                                ->booleanNode('static_symlinkMedia')->defaultTrue()->end()
65
                                ->scalarNode('template')->defaultNull()->end()
66
                                ->scalarNode('name')->defaultValue('PiedWeb.com')->end()
67
                                ->scalarNode('color')->defaultValue('#1fa67a')->end()
68
                                //->arrayNode('hosts')->requiresAtLeastOneElement()->scalarPrototype()->beforeNormalization()->castToArray()->end()
69
                                ->arrayNode('hosts')->scalarPrototype()->end()
70
                            ->end()
71
                        ->end()
72
                    ->end()
73
                ->end()
74
        ;
75
76
        return $treeBuilder;
77
    }
78
}
79