Completed
Push — next ( 19838d...3cfa04 )
by Thomas
12:22 queued 06:06
created

Container   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 49
rs 10
wmc 4
lcom 0
cbo 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A get() 0 4 1
A getContainer() 0 17 2
A genereateContainer() 0 16 1
1
<?php
2
3
namespace OcLegacy;
4
5
use Symfony\Component\Config\ConfigCache;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
9
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
10
11
class Container
12
{
13
    public static function get($key)
14
    {
15
        self::getContainer()->get($key);
16
    }
17
18
    /**
19
     * @return Container
20
     */
21
    private static function getContainer()
22
    {
23
        $containerFile = __DIR__ . '/../../var/cache2/container.php';
24
25
        $containerConfigCache = new ConfigCache(
26
            $containerFile,
27
            false
28
        );
29
30
        if (!$containerConfigCache->isFresh()) {
31
            self::genereateContainer($containerConfigCache);
32
        }
33
34
        require_once $containerFile;
35
36
        return new \OcLegacyContainer();
37
    }
38
39
    /**
40
     * @param ConfigCache $containerConfigCache
41
     * @return ContainerBuilder
42
     */
43
    private static function genereateContainer(ConfigCache $containerConfigCache)
44
    {
45
        $container = new ContainerBuilder();
46
        $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../../app/config'));
47
        $loader->load('services_oc.yml');
48
49
        $loader->load('parameters.yml');
50
51
        $container->compile();
52
53
        $dumper = new PhpDumper($container);
54
        $containerConfigCache->write(
55
            $dumper->dump(['class' => 'OcLegacyContainer']),
56
            $container->getResources()
57
        );
58
    }
59
}
60