Passed
Push — trunk ( c83b87...a87e38 )
by Christian
22:40 queued 02:13
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 50
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 54 1
1
<?php declare(strict_types=1);
2
3
namespace Shopware\Storefront\DependencyInjection;
4
5
use Shopware\Storefront\Theme\ConfigLoader\DatabaseAvailableThemeProvider;
6
use Shopware\Storefront\Theme\ConfigLoader\DatabaseConfigLoader;
7
use Shopware\Storefront\Theme\MD5ThemePathBuilder;
8
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
9
use Symfony\Component\Config\Definition\ConfigurationInterface;
10
11
class Configuration implements ConfigurationInterface
12
{
13
    public function getConfigTreeBuilder(): TreeBuilder
14
    {
15
        $treeBuilder = new TreeBuilder('storefront');
16
17
        $rootNode = $treeBuilder->getRootNode();
18
19
        $rootNode
20
            ->children()
21
                ->arrayNode('reverse_proxy')
22
                    ->children()
23
                        ->booleanNode('enabled')->end()
24
                        ->booleanNode('use_varnish_xkey')->defaultFalse()->end()
25
                        ->arrayNode('hosts')->performNoDeepMerging()->scalarPrototype()->end()->end()
26
                        ->integerNode('max_parallel_invalidations')->defaultValue(2)->end()
27
                        ->scalarNode('redis_url')->end()
28
                        ->scalarNode('ban_method')->defaultValue('BAN')->end()
29
                        ->arrayNode('ban_headers')->performNoDeepMerging()->defaultValue([])->scalarPrototype()->end()->end()
30
                        ->arrayNode('purge_all')
31
                            ->children()
32
                                ->scalarNode('ban_method')->defaultValue('BAN')->end()
33
                                ->arrayNode('ban_headers')->performNoDeepMerging()->defaultValue([])->scalarPrototype()->end()->end()
34
                                ->arrayNode('urls')->performNoDeepMerging()->defaultValue(['/'])->scalarPrototype()->end()->end()
35
                            ->end()
36
                        ->end()
37
                        ->arrayNode('fastly')
38
                            ->children()
39
                                 ->booleanNode('enabled')->defaultFalse()->end()
40
                                 ->scalarNode('api_key')->defaultValue('')->end()
41
                                 ->scalarNode('instance_tag')->defaultValue('')->end()
42
                                 ->scalarNode('service_id')->defaultValue('')->end()
43
                                 ->scalarNode('soft_purge')->defaultValue('0')->end()
44
                                 ->scalarNode('tag_prefix')->defaultValue('')->end()
45
                            ->end()
46
                        ->end()
47
                    ->end()
48
                ->end()
49
                ->arrayNode('http_cache')
50
                    ->children()
51
                        ->scalarNode('stale_while_revalidate')->defaultValue(null)->end()
52
                        ->scalarNode('stale_if_error')->defaultValue(null)->end()
53
                        ->arrayNode('ignored_url_parameters')->scalarPrototype()->end()
54
                    ->end()
55
                ->end()
56
                ->end()
57
                ->arrayNode('theme')
58
                    ->children()
59
                        ->scalarNode('config_loader_id')->defaultValue(DatabaseConfigLoader::class)->end()
60
                        ->scalarNode('theme_path_builder_id')->defaultValue(MD5ThemePathBuilder::class)->end()
61
                        ->scalarNode('available_theme_provider')->defaultValue(DatabaseAvailableThemeProvider::class)->end()
62
                    ->end()
63
                ->end()
64
            ->end();
65
66
        return $treeBuilder;
67
    }
68
}
69