Completed
Push — master ( 2f0a9f...1ea052 )
by Matthew
11:55 queued 11s
created

DtcGridExtension::setReflection()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 1
nc 1
nop 2
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Dtc\GridBundle\DependencyInjection;
4
5
use Dtc\GridBundle\Grid\Renderer\DataTablesRenderer;
6
use Dtc\GridBundle\Grid\Renderer\JQGridRenderer;
7
use Dtc\GridBundle\Grid\Renderer\TableGridRenderer;
8
use Symfony\Component\Config\Definition\Processor;
9
use Symfony\Component\DependencyInjection\ContainerBuilder;
10
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
11
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
12
use Symfony\Component\Config\FileLocator;
13
14
class DtcGridExtension extends Extension
15
{
16
    public function load(array $configs, ContainerBuilder $container)
17
    {
18
        $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
19
        $loader->load('grid.yml');
20
21
        $configuration = new Configuration();
22
        $processor = new Processor();
23
24
        $config = $processor->processConfiguration($configuration, $configs);
25
        $this->setReflection($config, $container);
26
        $this->setJqGrid($config, $container);
27
        $this->setTheme($config, $container);
28
        $this->setDatatables($config, $container);
29
        $this->setJquery($config, $container);
30
        $this->setPurl($config, $container);
31
        $container->setParameter('dtc_grid.page_div_style', isset($config['page_div_style']) ? $config['page_div_style'] : null);
32
        $container->setParameter('dtc_grid.table_options', isset($config['table']['options']) ? $config['table']['options'] : TableGridRenderer::$defaultOptions);
33
    }
34
35
    public function setReflection(array $config, ContainerBuilder $container)
36
    {
37
        $container->setParameter('dtc_grid.reflection.allowed_entities', isset($config['reflection']['allowed_entities']) ? $config['reflection']['allowed_entities'] : null);
38
    }
39
40
    public function setPurl(array $config, ContainerBuilder $container)
41
    {
42
        $purl = isset($config['purl']) ? $config['purl'] : [];
43
        $container->setParameter('dtc_grid.purl', $purl);
44
    }
45
46
    public function setJquery(array $config, ContainerBuilder $container)
47
    {
48
        $jquery = isset($config['jquery']) ? $config['jquery'] : [];
49
        $container->setParameter('dtc_grid.jquery', $jquery);
50
    }
51
52
    public function setJqGrid(array $config, ContainerBuilder $container)
53
    {
54
        $css = isset($config['jq_grid']['css']) ? $config['jq_grid']['css'] : [];
55
        $js = isset($config['jq_grid']['js']) ? $config['jq_grid']['js'] : [];
56
        $options = isset($config['jq_grid']['options']) ? $config['jq_grid']['options'] : JQGridRenderer::$defaultOptions;
57
58
        $container->setParameter('dtc_grid.jq_grid.css', $css);
59
        $container->setParameter('dtc_grid.jq_grid.js', $js);
60
        $container->setParameter('dtc_grid.jq_grid.options', $options);
61
    }
62
63
    public function setDataTables(array $config, ContainerBuilder $container)
64
    {
65
        $class = isset($config['datatables']['class']) ? $config['datatables']['class'] : [];
66
        $css = isset($config['datatables']['css']) ? $config['datatables']['css'] : [];
67
        $js = isset($config['datatables']['js']) ? $config['datatables']['js'] : [];
68
        $options = isset($config['datatables']['options']) ? $config['datatables']['options'] : DataTablesRenderer::$defaultOptions;
69
70
        $container->setParameter('dtc_grid.datatables.class', $class);
71
        $container->setParameter('dtc_grid.datatables.css', $css);
72
        $container->setParameter('dtc_grid.datatables.js', $js);
73
        $container->setParameter('dtc_grid.datatables.options', $options);
74
    }
75
76
    public function setTheme(array $config, ContainerBuilder $container)
77
    {
78
        $css = isset($config['theme']['css']) ? $config['theme']['css'] : [];
79
        $js = isset($config['theme']['js']) ? $config['theme']['js'] : [];
80
81
        $container->setParameter('dtc_grid.theme.css', $css);
82
        $container->setParameter('dtc_grid.theme.js', $js);
83
    }
84
85
    public function getAlias()
86
    {
87
        return 'dtc_grid';
88
    }
89
}
90