RedisExtension::getAlias()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 0
cts 0
cp 0
rs 10
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace SymfonyBundles\RedisBundle\DependencyInjection;
4
5
use SymfonyBundles\RedisBundle\Redis;
6
use Symfony\Component\DependencyInjection\Reference;
7
use Symfony\Component\DependencyInjection\Definition;
8
use Symfony\Component\DependencyInjection\ContainerBuilder;
9
use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension;
10
11
class RedisExtension extends ConfigurableExtension
12
{
13
    /**
14
     * loadInternal.
15
     *
16 7
     * @param array[]          $configs
17
     * @param ContainerBuilder $container
18 7
     */
19 7
    protected function loadInternal(array $configs, ContainerBuilder $container): void
20
    {
21 7
        $factoryReference = new Reference(Redis\FactoryInterface::class);
22 7
        $container->setDefinition($factoryReference, new Definition(Redis\Factory::class));
23 7
24 7
        foreach ($configs['clients'] as $name => $arguments) {
25 7
            $definition = new Definition(Redis\Client::class);
26
            $definition->setFactory([$factoryReference, 'create']);
27 7
            $definition->setArguments([$arguments['$parameters'], $arguments['$options']]);
28
            $definition->setPublic(true);
29 7
30 7
            $container->setDefinition(sprintf('%s.%s', $this->getAlias(), $name), $definition);
31
32
            if (false === $container->hasDefinition(Redis\ClientInterface::class)) {
33 7
                $container->setDefinition(Redis\ClientInterface::class, $definition);
34
            }
35
        }
36
    }
37
38 8
    /**
39
     * {@inheritdoc}
40 8
     */
41
    public function getAlias(): string
42
    {
43
        return 'sb_redis';
44
    }
45
}
46