Passed
Push — refactor-setup-event-dispatche... ( 2ec724 )
by Chema
03:43
created

SetupEventDispatcher   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
dl 0
loc 18
ccs 9
cts 9
cp 1
rs 10
c 1
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A getDispatcher() 0 16 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gacela\Framework\Bootstrap;
6
7
use Gacela\Framework\Event\Dispatcher\ConfigurableEventDispatcher;
8
use Gacela\Framework\Event\Dispatcher\EventDispatcherInterface;
9
use Gacela\Framework\Event\Dispatcher\NullEventDispatcher;
10
11
final class SetupEventDispatcher
12
{
13 34
    public static function getDispatcher(SetupGacela $setupGacela): EventDispatcherInterface
14
    {
15 34
        if (!$setupGacela->canCreateEventDispatcher()) {
16 23
            return new NullEventDispatcher();
17
        }
18
19 11
        $dispatcher = new ConfigurableEventDispatcher();
20 11
        $dispatcher->registerGenericListeners($setupGacela->getGenericListeners() ?? []);
21
22 11
        foreach ($setupGacela->getSpecificListeners() ?? [] as $event => $listeners) {
23 5
            foreach ($listeners as $callable) {
24 5
                $dispatcher->registerSpecificListener($event, $callable);
25
            }
26
        }
27
28 11
        return $dispatcher;
29
    }
30
}
31