ObblmCoreExtension   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 11
eloc 34
c 2
b 0
f 0
dl 0
loc 65
ccs 39
cts 39
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getAlias() 0 3 1
A createRulesPoolCacheDefinition() 0 13 4
A createAssetsDirectoriesConfiguration() 0 13 3
A load() 0 28 3
1
<?php
2
3
namespace Obblm\Core\DependencyInjection;
4
5
use Obblm\Core\Routing\AutoloadedRouteInterface;
6
use Obblm\Core\Contracts\RuleHelperInterface;
7
use Symfony\Component\Config\FileLocator;
8
use Symfony\Component\DependencyInjection\ContainerBuilder;
9
use Symfony\Component\DependencyInjection\Extension\Extension;
10
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
11
12
class ObblmCoreExtension extends Extension
13
{
14 2
    public function getAlias()
15
    {
16 2
        return 'obblm';
17
    }
18
19 2
    public function load(array $configs, ContainerBuilder $container)
20
    {
21 2
        $configuration = new Configuration();
22 2
        $config = $this->processConfiguration($configuration, $configs);
23
24 2
        foreach ($configs as $subConfig) {
25 2
            if ($subConfig) {
26 2
                $config = array_merge($config, $subConfig);
27
            }
28
        }
29
30 2
        $container->setParameter('obblm.email_sender.email', $config['email_sender']['email']);
31 2
        $container->setParameter('obblm.email_sender.name', $config['email_sender']['name']);
32
33 2
        $this->createAssetsDirectoriesConfiguration($container, $config);
34
35 2
        $locator = new FileLocator(dirname(__DIR__) . '/Resources/config');
36 2
        $loader = new YamlFileLoader($container, $locator);
37 2
        $loader->load('services.yaml');
38
39 2
        $container->registerForAutoconfiguration(RuleHelperInterface::class)
40 2
            ->addTag('obblm.rule_helpers')
41
        ;
42 2
        $container->registerForAutoconfiguration(AutoloadedRouteInterface::class)
43 2
            ->addTag('obblm.routes')
44
        ;
45
46 2
        $this->createRulesPoolCacheDefinition($container, $config);
47 2
    }
48
49 2
    private function createAssetsDirectoriesConfiguration(ContainerBuilder $container, $config)
50
    {
51
        // Upload
52 2
        $uploadDirectory = (!isset($config['obblm.upload_directory'])) ?
53 2
            $uploadDirectory = $container->getParameter('kernel.project_dir') . '/public/obblm/uploads' :
0 ignored issues
show
Unused Code introduced by
The assignment to $uploadDirectory is dead and can be removed.
Loading history...
54 2
            $config['obblm.upload_directory'];
55 2
        $container->setParameter('obblm.config.directory.upload', $uploadDirectory);
56
57
        // Image resize cache
58 2
        $uploadDirectory = (!isset($config['obblm.public_cache_directory'])) ?
59 2
            $uploadDirectory = $container->getParameter('kernel.project_dir') . '/public/obblm/cache' :
60 2
            $config['obblm.public_cache_directory'];
61 2
        $container->setParameter('obblm.config.directory.public.cache', $uploadDirectory);
62 2
    }
63
64 2
    private function createRulesPoolCacheDefinition(ContainerBuilder $container, array $config) : string
65
    {
66 2
        $serviceId = 'obblm.cache.rules';
67 2
        $default = $container->getDefinition('obblm.cache');
68 2
        $default->addTag('cache.pool');
69 2
        $container->setDefinition('obblm.cache', $default);
70 2
        if ($config['caches']) {
71 2
            foreach ($config['caches'] as $part => $options) {
72 2
                if (isset($options['adapter'])) {
73
                }
74
            }
75
        }
76 2
        return $serviceId;
77
    }
78
}
79