Completed
Push — master ( 7f83e2...ec3450 )
by Hugues
32:18 queued 16:31
created

PersistsMessages::handle()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 0
loc 12
rs 9.4285
cc 3
eloc 6
nc 3
nop 2
1
<?php
2
3
namespace HMLB\DDDBundle\MessageBus\Middleware;
4
5
use Doctrine\Common\Persistence\ObjectManager;
6
use HMLB\DDD\Message\Message;
7
use HMLB\DDDBundle\Persistence\PersistentMessage;
8
use Psr\Log\LoggerInterface;
9
use SimpleBus\Message\Bus\Middleware\MessageBusMiddleware;
10
11
/**
12
 * Adds messages to object manager persistence.
13
 *
14
 * @author Hugues Maignol <[email protected]>
15
 */
16
class PersistsMessages implements MessageBusMiddleware
17
{
18
    /**
19
     * @var ObjectManager
20
     */
21
    private $om;
22
23
    /**
24
     * @var LoggerInterface
25
     */
26
    private $logger;
27
28
    /**
29
     * @var bool
30
     */
31
    private $persistCommands;
32
33
    /**
34
     * @var bool
35
     */
36
    private $persistEvents;
37
38
    /**
39
     * PersistsMessages constructor.
40
     *
41
     * @param LoggerInterface $logger
42
     * @param ObjectManager   $om
43
     * @param bool            $persistCommands
44
     * @param bool            $persistEvents
45
     */
46
    public function __construct(LoggerInterface $logger, ObjectManager $om, $persistCommands, $persistEvents)
47
    {
48
        $this->logger = $logger;
49
        $this->om = $om;
50
        $this->persistCommands = $persistCommands;
51
        $this->persistEvents = $persistEvents;
52
    }
53
54
    /**
55
     * @param Message  $message
56
     * @param callable $next
57
     */
58
    public function handle($message, callable $next)
59
    {
60
        if ($message instanceof PersistentMessage) {
61
            if (!$message->getId()) {
62
                $message->initializeId();
63
            }
64
65
            $this->om->persist($message);
66
        }
67
68
        $next($message);
69
    }
70
}
71