Completed
Pull Request — master (#1)
by Adam
06:20 queued 03:33
created

Queue   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 4
Bugs 1 Features 3
Metric Value
wmc 3
c 4
b 1
f 3
lcom 1
cbo 4
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 2
A add() 0 7 1
1
<?php
2
3
namespace Equip\Queue;
4
5
use Equip\Queue\Driver\DriverInterface;
6
use Equip\Queue\Serializer\JsonSerializer;
7
use Equip\Queue\Serializer\MessageSerializerInterface;
8
9
class Queue
10
{
11
    /**
12
     * @var DriverInterface
13
     */
14
    private $driver;
15
16
    /**
17
     * @var MessageSerializerInterface
18
     */
19
    private $serializer;
20
21
    /**
22
     * @param DriverInterface $driver
23
     * @param MessageSerializerInterface $serializer
24
     */
25
    public function __construct(DriverInterface $driver, MessageSerializerInterface $serializer = null)
26
    {
27
        $this->driver = $driver;
28
        $this->serializer = $serializer ?: new JsonSerializer;
29
    }
30
31
    /**
32
     * Adds a message to the queue
33
     *
34
     * @param Message $message
35
     *
36
     * @return bool
37
     */
38
    public function add(Message $message)
39
    {
40
        return $this->driver->push(
41
            $message->queue(),
42
            $this->serializer->serialize($message)
43
        );
44
    }
45
}
46