QuickStart   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 6
dl 0
loc 22
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A create() 0 12 1
1
<?php
2
3
namespace League\Tactician\Setup;
4
5
use League\Tactician\CommandBus;
6
use League\Tactician\Handler\CommandNameExtractor\ClassNameExtractor;
7
use League\Tactician\Handler\Locator\InMemoryLocator;
8
use League\Tactician\Handler\MethodNameInflector\HandleInflector;
9
use League\Tactician\Handler\CommandHandlerMiddleware;
10
use League\Tactician\Plugins\LockingMiddleware;
11
12
/**
13
 * Builds a working command bus with minimum fuss.
14
 *
15
 * Currently, the default setup is:
16
 * - Handlers instances in memory
17
 * - The expected handler method is always "handle"
18
 * - And only one command at a time can be executed.
19
 *
20
 * This factory is a decent place to start trying out Tactician but you're
21
 * better off moving to a custom setup or a framework bundle/module/provider in
22
 * the long run. As you can see, it's not difficult. :)
23
 */
24
class QuickStart
25
{
26
    /**
27
     * Creates a default CommandBus that you can get started with.
28
     *
29
     * @param array $commandToHandlerMap
30
     *
31
     * @return CommandBus
32
     */
33 2
    public static function create($commandToHandlerMap): CommandBus
34
    {
35 2
        $handlerMiddleware = new CommandHandlerMiddleware(
36 2
            new ClassNameExtractor(),
37 2
            new InMemoryLocator($commandToHandlerMap),
38 2
            new HandleInflector()
39
        );
40
41 2
        $lockingMiddleware = new LockingMiddleware();
42
43 2
        return new CommandBus([$lockingMiddleware, $handlerMiddleware]);
44
    }
45
}
46