Passed
Push — master ( 08dd0c...2460e1 )
by Koldo
02:21
created

ConfigProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 45
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getBusConfig() 0 13 1
A getDependencies() 0 19 1
A __invoke() 0 5 1
1
<?php
2
3
namespace InFw\TacticianAdapter;
4
5
use InFw\TacticianAdapter\CommandBus\ReleaseEventsMiddleware;
6
use InFw\TacticianAdapter\Factory\CommandBusFactory;
7
use InFw\TacticianAdapter\Factory\EmitterFactory;
8
use InFw\TacticianAdapter\Factory\HandlerLocatorFactory;
9
use League\Event\EmitterInterface;
10
use League\Tactician\CommandBus;
11
use League\Tactician\CommandEvents\EventMiddleware;
12
use League\Tactician\Handler\CommandNameExtractor\ClassNameExtractor;
13
use League\Tactician\Handler\CommandNameExtractor\CommandNameExtractor;
14
use League\Tactician\Handler\Locator\HandlerLocator;
15
use League\Tactician\Handler\MethodNameInflector\InvokeInflector;
16
use League\Tactician\Handler\MethodNameInflector\MethodNameInflector;
17
use League\Tactician\Logger\Formatter\ClassPropertiesFormatter;
18
use League\Tactician\Logger\Formatter\Formatter;
19
use League\Tactician\Logger\LoggerMiddleware;
20
use League\Tactician\Plugins\LockingMiddleware;
21
22
class ConfigProvider
23
{
24
    public function __invoke()
25
    {
26
        return [
27
            'command-bus' => $this->getBusConfig(),
28
            'dependencies' => $this->getDependencies(),
29
        ];
30
    }
31
32
    protected function getBusConfig()
33
    {
34
        return [
35
            'locator' => HandlerLocator::class,
36
            'inflector' => MethodNameInflector::class,
37
            'extractor' => CommandNameExtractor::class,
38
            'formatter' => Formatter::class,
39
            'middleware' => [
40
                LockingMiddleware::class,
41
                LoggerMiddleware::class,
42
                EventMiddleware::class,
43
            ],
44
            'handler-map' => [],
45
        ];
46
    }
47
48
    protected function getDependencies()
49
    {
50
        return [
51
            'invokables' => [
52
                Formatter::class => ClassPropertiesFormatter::class,
53
                MethodNameInflector::class => InvokeInflector::class,
54
                CommandNameExtractor::class => ClassNameExtractor::class,
55
                LockingMiddleware::class => LockingMiddleware::class,
56
                LoggerMiddleware::class => LoggerMiddleware::class,
57
                EventMiddleware::class => EventMiddleware::class,
58
                ReleaseEventsMiddleware::class => ReleaseEventsMiddleware::class,
59
            ],
60
            'factories' => [
61
                EmitterInterface::class => EmitterFactory::class,
62
                CommandBus::class => CommandBusFactory::class,
63
                HandlerLocator::class => HandlerLocatorFactory::class,
64
            ],
65
            'aliases' => [
66
                \InFw\EventSourcing\EmitterInterface::class => EmitterInterface::class,
67
            ],
68
        ];
69
    }
70
}
71