getXsdValidationBasePath()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
ccs 2
cts 2
cp 1
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 * @namespace Asm\TranslationLoaderBundle\DependencyInjection
4
 */
5
namespace Asm\TranslationLoaderBundle\DependencyInjection;
6
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\Config\FileLocator;
9
use Symfony\Component\DependencyInjection\Reference;
10
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
11
use Symfony\Component\DependencyInjection\Loader;
12
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
13
14
/**
15
 * This is the class that loads and manages your bundle configuration
16
 *
17
 * @package Asm\TranslationLoaderBundle\DependencyInjection
18
 * @author marc aschmann <[email protected]>
19
 * @uses Symfony\Component\DependencyInjection\ContainerBuilder
20
 * @uses Symfony\Component\Config\FileLocator
21
 * @uses Symfony\Component\HttpKernel\DependencyInjection\Extension
22
 * @uses Symfony\Component\DependencyInjection\Loader
23
 */
24
class AsmTranslationLoaderExtension extends Extension
25
{
26
    /**
27
     * {@inheritDoc}
28
     */
29 7
    public function load(array $configs, ContainerBuilder $container)
30
    {
31 7
        $configuration = new Configuration();
32 7
        $config = $this->processConfiguration($configuration, $configs);
33
34 7
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
35 7
        $loader->load('services.yml');
36
37
        // set entity manager for translations
38 7
        $em = 'default';
39 7
        if (isset($config['database']['entity_manager'])
40 7
            && $config['database']['entity_manager'] != 'default'
41 7
        ) {
42
            $em = $config['database']['entity_manager'];
43
        }
44
45
        // association between file extensions and translation loader service ids
46 7
        $container->setParameter('asm_translation_loader.translation_loaders', $config['loaders']);
47 7
        $container->setParameter('asm_translation_loader.database.entity_manager', $em);
48
49 7
        $loader = new XmlFileLoader(
50 7
            $container,
51 7
            new FileLocator(__DIR__.'/../Resources/config')
52 7
        );
53
54
        // load the event dispatcher
55 7
        $loader->load('event_dispatcher.xml');
56
57
        // load the translation manager resource
58 7
        $container->setParameter('asm_translation_loader.resources', $config['resources']);
59 7
        $loader->load('translation_manager_resource.xml');
60
61
        // check if history feature is enabled
62 7
        if (isset($config['history']['enabled']) && true === $config['history']['enabled']) {
63 1
            $loader->load('translation_history_subscriber.xml');
64
65 1
            $definition = $container->getDefinition('asm_translation_loader.history.subscriber');
66
67 1
            if (interface_exists('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface')) {
68 1
                $definition->replaceArgument(1, new Reference('security.token_storage'));
69 1
            } else {
70
                $definition->replaceArgument(1, new Reference('security.context'));
71
            }
72 1
        }
73
74 7
        $container->setParameter('asm_translation_loader.translation_manager.class', $config['translation_manager']);
75 7
        $container->setParameter('asm_translation_loader.translation_history_manager.class', $config['translation_history_manager']);
76 7
        $container->setParameter('asm_translation_loader.model.translation.class', $config['translation_class']);
77 7
        $container->setParameter('asm_translation_loader.model.translation_history.class', $config['translation_history_class']);
78
79 7
        if ('orm' == $config['driver']) {
80 7
            $loader->load('orm.xml');
81
82 7
            $definition = $container->getDefinition('asm_translation_loader.translation.entity_manager');
83
84 7
            if (method_exists('Symfony\Component\DependencyInjection\Definition', 'setFactory')) {
85 7
                $definition->setFactory(array(new Reference('doctrine'), 'getManager'));
86 7
            } else {
87
                $definition->setFactoryService('doctrine');
0 ignored issues
show
Bug introduced by
The method setFactoryService() does not exist on Symfony\Component\DependencyInjection\Definition. Did you maybe mean setFactory()?

This check marks calls to methods that do not seem to exist on an object.

This is most likely the result of a method being renamed without all references to it being renamed likewise.

Loading history...
88
                $definition->setFactoryMethod('getManager');
0 ignored issues
show
Bug introduced by
The method setFactoryMethod() does not exist on Symfony\Component\DependencyInjection\Definition. Did you maybe mean setFactory()?

This check marks calls to methods that do not seem to exist on an object.

This is most likely the result of a method being renamed without all references to it being renamed likewise.

Loading history...
89
            }
90 7
        }
91
92
        // load the loader resolver service
93 7
        $loader->load('file_loader_resolver.xml');
94 7
    }
95
96
    /**
97
     * {@inheritDoc}
98
     */
99 15
    public function getNamespace()
100
    {
101 15
        return 'https://github.com/maschmann/TranslationLoaderBundle/schema/dic';
102
    }
103
104
    /**
105
     * {@inheritDoc}
106
     */
107 2
    public function getXsdValidationBasePath()
108
    {
109 2
        return __DIR__.'/../Resources/config/schema';
110
    }
111
}
112