getObjectManager()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 10
c 0
b 0
f 0
ccs 0
cts 0
cp 0
cc 3
nc 3
nop 1
crap 12
1
<?php
2
3
/*
4
 * This file is part of the GesdinetJWTRefreshTokenBundle package.
5
 *
6
 * (c) Gesdinet <http://www.gesdinet.com/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Gesdinet\JWTRefreshTokenBundle\DependencyInjection;
13
14
use Symfony\Component\DependencyInjection\ContainerBuilder;
15
use Symfony\Component\Config\FileLocator;
16
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
17
use Symfony\Component\DependencyInjection\Loader;
18
19
/**
20
 * This is the class that loads and manages your bundle configuration.
21
 *
22
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
23
 */
24
class GesdinetJWTRefreshTokenExtension extends Extension
25
{
26
    /**
27
     * {@inheritdoc}
28
     */
29 1
    public function load(array $configs, ContainerBuilder $container)
30
    {
31 1
        $configuration = new Configuration();
32 1
        $config = $this->processConfiguration($configuration, $configs);
33
34 1
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
35 1
        $loader->load('services.yml');
36
37 1
        $container->setParameter('gesdinet_jwt_refresh_token.ttl', $config['ttl']);
38 1
        $container->setParameter('gesdinet_jwt_refresh_token.ttl_update', $config['ttl_update']);
39 1
        $container->setParameter('gesdinet_jwt_refresh_token.security.firewall', $config['firewall']);
40 1
        $container->setParameter('gesdinet_jwt_refresh_token.user_provider', $config['user_provider']);
41
        $container->setParameter('gesdinet_jwt_refresh_token.user_identity_field', $config['user_identity_field']);
42
        $container->setParameter('gesdinet_jwt_refresh_token.single_use', $config['single_use']);
43 1
        $container->setParameter('gesdinet_jwt_refresh_token.token_parameter_name', $config['token_parameter_name']);
44
45
        $refreshTokenClass = 'Gesdinet\JWTRefreshTokenBundle\Entity\RefreshToken';
46
        $objectManager = 'doctrine.orm.entity_manager';
47 1
48 1
        if (!class_exists('Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass')
49
            || 'mongodb' === strtolower($config['manager_type'])
50
        ) {
51
            $refreshTokenClass = 'Gesdinet\JWTRefreshTokenBundle\Document\RefreshToken';
52
            $objectManager = 'doctrine_mongodb.odm.document_manager';
53
        }
54
55
        if (null !== $this->getRefreshTokenClass($config)) {
56
            $refreshTokenClass = $this->getRefreshTokenClass($config);
57
        }
58
59
        if (null !== $this->getObjectManager($config)) {
60
            $objectManager = $this->getObjectManager($config);
61
        }
62
63
        $container->setParameter('gesdinet.jwtrefreshtoken.refresh_token.class', $refreshTokenClass);
64
        $container->setParameter('gesdinet.jwtrefreshtoken.object_manager.id', $objectManager);
65
        $container->setParameter('gesdinet.jwtrefreshtoken.user_checker.id', $config['user_checker']);
66
    }
67
68
    /**
69
     * Get refresh token class from configuration.
70
     *
71
     * Supports deprecated configuration
72
     *
73
     * @param array $config
74
     *
75
     * @return string|null
76
     */
77
    protected function getRefreshTokenClass(array $config)
78
    {
79
        if (isset($config['refresh_token_class'])) {
80
            return $config['refresh_token_class'];
81
        }
82
83
        return $config['refresh_token_entity'] ?: null;
84
    }
85
86
    /**
87
     * Get object manager from configuration.
88
     *
89
     * Supports deprecated configuration
90
     *
91
     * @param array $config
92
     *
93
     * @return string|null
94
     */
95
    protected function getObjectManager(array $config)
96
    {
97
        if (isset($config['object_manager'])) {
98
            return $config['object_manager'];
99
        }
100
101
        return $config['entity_manager'] ?: null;
102
    }
103
}
104