SetupEventDispatcher   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
dl 0
loc 18
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
    public static function getDispatcher(SetupGacela $setupGacela): EventDispatcherInterface
14
    {
15
        if (!$setupGacela->canCreateEventDispatcher()) {
16
            return new NullEventDispatcher();
17
        }
18
19
        $dispatcher = new ConfigurableEventDispatcher();
20
        $dispatcher->registerGenericListeners($setupGacela->getGenericListeners() ?? []);
21
22
        foreach ($setupGacela->getSpecificListeners() ?? [] as $event => $listeners) {
23
            foreach ($listeners as $callable) {
24
                $dispatcher->registerSpecificListener($event, $callable);
25
            }
26
        }
27
28
        return $dispatcher;
29
    }
30
}
31