Completed
Push — master ( da0c61...a2c4ac )
by Peter
12:37
created

GpsLabDomainEventExtension::getAlias()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
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('bus.yml');
27
        $loader->load('locator.yml');
28
        $loader->load('name_resolver.yml');
29
30
        $config = $this->processConfiguration(new Configuration(), $configs);
31
32
        $container->setAlias('domain_event.locator', $this->getLocatorRealName($config['locator']));
33
        $container->setAlias('domain_event.name_resolver', $this->getNameResolverRealName($config['name_resolver']));
34
    }
35
36
    /**
37
     * @param string $name
38
     *
39
     * @return string
40
     */
41
    protected function getLocatorRealName($name)
42
    {
43
        if (in_array($name, ['voter', 'named_event'])) {
44
            return 'domain_event.locator.'.$name;
45
        }
46
47
        return $name;
48
    }
49
50
    /**
51
     * @param string $name
52
     *
53
     * @return string
54
     */
55
    protected function getNameResolverRealName($name)
56
    {
57
        if (in_array($name, ['event_class', 'event_class_last_part', 'named_event'])) {
58
            return 'domain_event.name_resolver.'.$name;
59
        }
60
61
        return $name;
62
    }
63
64
    /**
65
     * @return string
66
     */
67
    public function getAlias()
68
    {
69
        return 'gpslab_domain_event';
70
    }
71
}
72