Completed
Push — master ( dfb193...8dd935 )
by Peter
09:44
created

GpsLabDomainEventExtension::getQueueRealName()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 8
ccs 0
cts 7
cp 0
rs 9.4285
cc 2
eloc 4
nc 2
nop 1
crap 6
1
<?php
2
/**
3
 * GpsLab component.
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2016, Peter Gribanov
7
 * @license   http://opensource.org/licenses/MIT
8
 */
9
10
namespace GpsLab\Bundle\DomainEvent\DependencyInjection;
11
12
use Symfony\Component\Config\FileLocator;
13
use Symfony\Component\DependencyInjection\ContainerBuilder;
14
use Symfony\Component\DependencyInjection\Loader;
15
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
16
17
class GpsLabDomainEventExtension extends Extension
18
{
19
    /**
20
     * @param array $configs
21
     * @param ContainerBuilder $container
22
     */
23
    public function load(array $configs, ContainerBuilder $container)
24
    {
25
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
26
        $loader->load('queue.yml');
27
        $loader->load('bus.yml');
28
        $loader->load('locator.yml');
29
        $loader->load('name_resolver.yml');
30
31
        $config = $this->processConfiguration(new Configuration(), $configs);
32
33
        $container->setAlias('domain_event.bus', $this->getBusRealName($config['bus']));
34
        $container->setAlias('domain_event.queue', $this->getQueueRealName($config['queue']));
35
        $container->setAlias('domain_event.locator', $this->getLocatorRealName($config['locator']));
36
        $container->setAlias('domain_event.name_resolver', $this->getNameResolverRealName($config['name_resolver']));
37
    }
38
39
    /**
40
     * @param string $name
41
     *
42
     * @return string
43
     */
44
    protected function getBusRealName($name)
45
    {
46
        if (in_array($name, ['listener_locator', 'queue'])) {
47
            return 'domain_event.bus.'.$name;
48
        }
49
50
        return $name;
51
    }
52
53
    /**
54
     * @param string $name
55
     *
56
     * @return string
57
     */
58
    protected function getQueueRealName($name)
59
    {
60
        if (in_array($name, ['memory', 'memory_unique'])) {
61
            return 'domain_event.queue.'.$name;
62
        }
63
64
        return $name;
65
    }
66
67
    /**
68
     * @param string $name
69
     *
70
     * @return string
71
     */
72
    protected function getLocatorRealName($name)
73
    {
74
        if (in_array($name, ['voter', 'named_event'])) {
75
            return 'domain_event.locator.'.$name;
76
        }
77
78
        return $name;
79
    }
80
81
    /**
82
     * @param string $name
83
     *
84
     * @return string
85
     */
86
    protected function getNameResolverRealName($name)
87
    {
88
        if (in_array($name, ['event_class', 'event_class_last_part', 'named_event'])) {
89
            return 'domain_event.name_resolver.'.$name;
90
        }
91
92
        return $name;
93
    }
94
95
    /**
96
     * @return string
97
     */
98
    public function getAlias()
99
    {
100
        return 'gpslab_domain_event';
101
    }
102
}
103