SkautisExtension   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 8
Bugs 0 Features 1
Metric Value
wmc 4
c 8
b 0
f 1
lcom 0
cbo 7
dl 0
loc 48
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B load() 0 42 4
1
<?php
2
3
namespace SkautisBundle\DependencyInjection;
4
5
use Symfony\Component\DependencyInjection\ContainerBuilder;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
8
use Symfony\Component\DependencyInjection\Loader;
9
use Symfony\Component\DependencyInjection\Reference;
10
11
/**
12
 * This is the class that loads and manages your bundle configuration
13
 *
14
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
15
 */
16
class SkautisExtension extends Extension
17
{
18
    /**
19
     * {@inheritDoc}
20
     */
21
    public function load(array $configs, ContainerBuilder $container)
22
    {
23
        $configuration = new Configuration();
24
        $config = $this->processConfiguration($configuration, $configs);
25
26
        $container->setParameter('skautis.app_id', $config['app_id']);
27
        $container->setParameter('skautis.test_mode', $config['test_mode']);
28
        $container->setParameter('skautis.profiler', $config['profiler']);
29
        $container->setParameter('skautis.wsdl.compression', $config['wsdl_compression']);
30
        $container->setParameter('skautis.wsdl.cache', $config['wsdl_cache']);
31
        $container->setParameter('skautis.doctrine.cache.ttl', $config['request_cache_ttl']);
32
        $container->setParameter('skautis.after_login_redirect', $config['after_login_redirect']);
33
        $container->setParameter('skautis.after_logout_redirect', $config['after_logout_redirect']);
34
        $container->setParameter('skautis.auth.enable_connector', $config['auth']['enable_connector']);
35
        $container->setParameter('skautis.auth.enable_autoregister', $config['auth']['enable_autoregister']);
36
        $container->setParameter('skautis.auth.enable_skautis_anonymous', $config['auth']['enable_skautis_anonymous']);
37
        $container->setParameter('skautis.auth.force_confirm_auth', $config['auth']['force_confirm_auth']);
38
39
        if ($config['auth']['enable_connector']) {
40
            $container->setAlias("skautis.security.authentication.connector", $config['connector_service']);
41
        }
42
43
        if ($config['auth']['enable_autoregister']) {
44
            $container->setAlias("skautis.security.authentication.connector", $config['registrator_service']);
45
        }
46
47
48
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
49
        $loader->load('services.yml');
50
51
        if ($config['request_cache']) {
52
            $container->register('skautis.doctrine.cache', '%skautis.cache_class%')
53
                ->addArgument(new Reference($config['doctrine_cache_provider']))
54
                ->addArgument('skautis.doctrine.cache.ttl');
55
56
            $container->register('skautis.ws_cache_factory', 'SkautisBundle\Skautis\Wsdl\CacheDecoratorFactory')
57
                ->addArgument(new Reference('skautis.ws_cache_factory.inner'))
58
                ->addArgument(new Reference('skautis.doctrine.cache'))
59
                ->setDecoratedService('skautis.ws_factory')
60
                ->setPublic(false);
61
        }
62
    }
63
}
64
65