Completed
Push — master ( de5c9f...2ef464 )
by Daniel
21s queued 11s
created

LogEventErrorHandler   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 10
c 0
b 0
f 0
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A handle() 0 15 1
1
<?php
2
3
namespace Jellyfish\EventLog\EventErrorHandler;
4
5
use Jellyfish\Event\EventErrorHandlerInterface;
6
use Jellyfish\Event\EventInterface;
7
use Psr\Log\LoggerInterface;
8
use Throwable;
9
10
class LogEventErrorHandler implements EventErrorHandlerInterface
11
{
12
    /**
13
     * @var \Psr\Log\LoggerInterface
14
     */
15
    protected $logger;
16
17
    /**
18
     * @param \Psr\Log\LoggerInterface $logger
19
     */
20
    public function __construct(LoggerInterface $logger)
21
    {
22
        $this->logger = $logger;
23
    }
24
25
    /**
26
     * @param \Throwable $throwable
27
     * @param string $eventListenerIdentifier
28
     * @param \Jellyfish\Event\EventInterface $event
29
     *
30
     * @return \Jellyfish\Event\EventErrorHandlerInterface
31
     */
32
    public function handle(
33
        Throwable $throwable,
34
        string $eventListenerIdentifier,
35
        EventInterface $event
36
    ): EventErrorHandlerInterface {
37
        $context = [
38
            'eventListenerIdentifier' => $eventListenerIdentifier,
39
            'eventName' => $event->getName(),
40
            'eventMetaProperties' => $event->getMetaProperties(),
41
            'trace' => $throwable->getTrace()
42
        ];
43
44
        $this->logger->error($throwable->getMessage(), $context);
45
46
        return $this;
47
    }
48
}
49