Completed
Push — master ( 055f1b...f72a4b )
by Pavel
52s
created

RouterLoaderPass::process()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 3

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 23
ccs 16
cts 16
cp 1
rs 9.0856
cc 3
eloc 13
nc 4
nop 1
crap 3
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: batanov.pavel
5
 * Date: 17.05.2016
6
 * Time: 7:42
7
 */
8
9
namespace Bankiru\Api\Rpc\DependencyInjection\Compiler;
10
11
use Bankiru\Api\Rpc\Listener\ExceptionListener;
12
use Bankiru\Api\Rpc\RpcEvents;
13
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
14
use Symfony\Component\DependencyInjection\ContainerBuilder;
15
use Symfony\Component\DependencyInjection\Reference;
16
17
class RouterLoaderPass implements CompilerPassInterface
18
{
19
    /** {@inheritdoc} */
20 1
    public function process(ContainerBuilder $container)
21
    {
22 1
        if ($container->has('logger')) {
23
            $container
24 1
                ->register('rpc.exception_listener', ExceptionListener::class)
25 1
                ->setArguments([new Reference('logger')])
26 1
                ->addTag(
27 1
                    'kernel.event_listener',
28
                    [
29 1
                        'event'  => RpcEvents::EXCEPTION,
30 1
                        'method' => 'onException',
31
                    ]
32 1
                );
33 1
        }
34
35 1
        $loader = $container->getDefinition('rpc.router.resolver');
36
37 1
        $taggedServices = $container->findTaggedServiceIds('rpc.route_loader');
38
39 1
        foreach ($taggedServices as $id => $tags) {
40 1
            $loader->addMethodCall('addLoader', [new Reference($id)]);
41 1
        }
42 1
    }
43
}
44