Passed
Push — master ( dbf047...1b561f )
by Daniel
02:26
created

CacheEventErrorHandler   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 2
eloc 9
c 1
b 0
f 1
dl 0
loc 44
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A handle() 0 12 1
1
<?php
2
3
namespace Jellyfish\EventCache\EventErrorHandler;
4
5
use Jellyfish\Cache\CacheInterface;
6
use Jellyfish\Event\EventErrorHandlerInterface;
7
use Jellyfish\Event\EventInterface;
8
use Jellyfish\EventCache\EventCacheConstants;
9
use Jellyfish\Serializer\SerializerInterface;
10
use Throwable;
11
12
use function sprintf;
13
14
class CacheEventErrorHandler implements EventErrorHandlerInterface
15
{
16
    /**
17
     * @var \Jellyfish\Cache\CacheInterface
18
     */
19
    protected $cache;
20
21
    /**
22
     * @var \Jellyfish\Serializer\SerializerInterface
23
     */
24
    protected $serializer;
25
26
    /**
27
     * @param \Jellyfish\Cache\CacheInterface $cache
28
     * @param \Jellyfish\Serializer\SerializerInterface $serializer
29
     */
30
    public function __construct(
31
        CacheInterface $cache,
32
        SerializerInterface $serializer
33
    ) {
34
        $this->cache = $cache;
35
        $this->serializer = $serializer;
36
    }
37
38
39
    /**
40
     * @param string $eventListenerIdentifier
41
     * @param \Jellyfish\Event\EventInterface $event
42
     * @param \Throwable $throwable
43
     *
44
     * @return \Jellyfish\Event\EventErrorHandlerInterface
45
     */
46
    public function handle(
47
        Throwable $throwable,
48
        string $eventListenerIdentifier,
49
        EventInterface $event
50
    ): EventErrorHandlerInterface {
51
        $this->cache->set(
52
            $event->getId(),
53
            $this->serializer->serialize($event, 'json'),
54
            EventCacheConstants::LIFE_TIME
55
        );
56
57
        return $this;
58
    }
59
}
60