Completed
Pull Request — development (#629)
by Thomas
07:30
created

Container::getContainer()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 30
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 2
eloc 18
c 3
b 0
f 0
nc 2
nop 0
dl 0
loc 30
rs 8.8571
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
    private static function getContainer()
19
    {
20
        $containerFile = __DIR__ . '/../../var/cache2/container.php';
21
22
        $containerConfigCache = new ConfigCache(
23
            $containerFile,
24
            false
25
        );
26
27
        if (!$containerConfigCache->isFresh()) {
28
            $container = new ContainerBuilder();
29
            $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../../app/config'));
30
            $loader->load('services_oc.yml');
31
32
            $loader->load('parameters.yml');
33
34
            $container->compile();
35
36
            $dumper = new PhpDumper($container);
37
            $containerConfigCache->write(
38
                $dumper->dump(['class' => 'OcLegacyContainer']),
39
                $container->getResources()
40
            );
41
        }
42
43
        require_once $containerFile;
44
        $container = new \OcLegacyContainer();
45
46
        return $container;
47
    }
48
}
49