Completed
Push — master ( 2e004f...db8ff8 )
by dan
01:41
created

ChannelFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 2
c 0
b 0
f 0
lcom 0
cbo 3
dl 0
loc 30
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B create() 0 27 2
1
<?php
2
3
namespace IrishDan\NotificationBundle\DependencyInjection\Factory;
4
5
use Symfony\Component\DependencyInjection\ContainerBuilder;
6
use Symfony\Component\DependencyInjection\Definition;
7
use Symfony\Component\DependencyInjection\Reference;
8
9
class ChannelFactory
10
{
11
    public function create(ContainerBuilder $container, $channel, array $config)
12
    {
13
        $definition = new Definition();
14
        $definition->setClass('IrishDan\NotificationBundle\Channel\DirectChannel');
15
        $definition->setArguments(
16
            [
17
                '%notification.channel.' . $channel . '.configuration%',
18
                $channel,
19
            ]
20
        );
21
22
        $adapter = new Reference('notification.adapter.' . $channel);
23
        $eventDispatcher = new Reference('event_dispatcher');
24
25
        $definition->setMethodCalls(
26
            [
27
                ['setAdapter', [$adapter]],
28
                ['setEventDispatcher', [$eventDispatcher]],
29
            ]
30
        );
31
32
        if (!empty($config['direct_dispatch'])) {
33
            $definition->addMethodCall('setDispatchToEvent', [false]);
34
        }
35
36
        $container->setDefinition('notification.channel.' . $channel, $definition);
37
    }
38
}
39