Completed
Pull Request — master (#15)
by Martin
07:26
created

TemplateResourcesPass   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 2
dl 0
loc 27
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A process() 0 10 3
A setAppDirectoryResources() 0 13 2
1
<?php
2
3
namespace Goetas\TwitalBundle\DependencyInjection\Compiler;
4
5
use Goetas\TwitalBundle\DependencyInjection\DirectoryResourceDefinition;
6
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
9
class TemplateResourcesPass implements CompilerPassInterface
10
{
11
    public function process(ContainerBuilder $container)
12
    {
13
        if (!$container->hasDefinition('assetic.asset_manager')) {
14
            return;
15
        }
16
17
        foreach ($container->getParameter("twital.loader_regexs") as $regex) {
18
            $this->setAppDirectoryResources($container, $regex);
19
        }
20
    }
21
22
    protected function setAppDirectoryResources(ContainerBuilder $container, $regex)
23
    {
24
        $dirs = array(
25
            $container->getParameter('kernel.root_dir') . '/Resources/views',
26
        );
27
        if ($container->hasParameter('kernel.project_dir')) {
28
            $dirs[] = $container->getParameter('kernel.project_dir') . '/templates';
29
        }
30
        $container->setDefinition(
31
            'assetic.' . md5($regex) . '_twital_directory_resource.kernel',
32
            new DirectoryResourceDefinition('', 'twital', $regex, $dirs)
33
        );
34
    }
35
}
36