Passed
Push — master ( b520c6...4ddac5 )
by Mike
03:27
created

QueueProvider::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
4
namespace Xervice\RabbitMQ\Core;
5
6
7
use DataProvider\RabbitMqQueueBindDataProvider;
8
use DataProvider\RabbitMqQueueDataProvider;
9
use PhpAmqpLib\Channel\AMQPChannel;
10
11
class QueueProvider implements QueueProviderInterface
12
{
13
    /**
14
     * @var \PhpAmqpLib\Channel\AMQPChannel
15
     */
16
    private $channel;
17
18
    /**
19
     * Exchange constructor.
20
     *
21
     * @param \PhpAmqpLib\Channel\AMQPChannel $channel
22
     */
23
    public function __construct(AMQPChannel $channel)
24
    {
25
        $this->channel = $channel;
26
    }
27
28
    /**
29
     * @param \DataProvider\RabbitMqQueueDataProvider $queueDataProvider
30
     */
31
    public function declare(RabbitMqQueueDataProvider $queueDataProvider): void
0 ignored issues
show
Coding Style introduced by
Possible parse error: non-abstract method defined as abstract
Loading history...
Coding Style introduced by
It is generally advisable to only define one property per statement.

Only declaring a single property per statement allows you to later on add doc comments more easily.

It is also recommended by PSR2, so it is a common style that many people expect.

Loading history...
32
    {
33
        $this->channel->queue_declare(
34
            $queueDataProvider->getName(),
35
            $queueDataProvider->getPassive(),
36
            $queueDataProvider->getDurable(),
37
            $queueDataProvider->getExclusive(),
38
            $queueDataProvider->getAutoDelete(),
39
            $queueDataProvider->getNoWait(),
40
            $queueDataProvider->getArgument(),
41
            $queueDataProvider->getTicket()
42
        );
43
    }
44
45
46
    /**
47
     * @param \DataProvider\RabbitMqQueueBindDataProvider $bindDataProvider
48
     */
49
    public function bind(RabbitMqQueueBindDataProvider $bindDataProvider): void
50
    {
51
        $this->channel->queue_bind(
52
            $bindDataProvider->getQueue()->getName(),
53
            $bindDataProvider->getExchange()->getName(),
54
            $bindDataProvider->getRoutingKey(),
55
            $bindDataProvider->getNoWait(),
56
            $bindDataProvider->getArgument(),
57
            $bindDataProvider->getTicket()
58
        );
59
    }
60
61
    /**
62
     * @param \DataProvider\RabbitMqQueueDataProvider $queueDataProvider
63
     */
64
    public function delete(RabbitMqQueueDataProvider $queueDataProvider): void
65
    {
66
        $this->channel->queue_delete(
67
            $queueDataProvider->getName()
68
        );
69
    }
70
71
72
}