Completed
Pull Request — master (#1)
by Adam
05:22 queued 03:01
created

Queue::add()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 2
Metric Value
c 3
b 1
f 2
dl 0
loc 7
rs 9.4285
cc 1
eloc 4
nc 1
nop 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