Completed
Push — 1.0 ( 3cba8a...ca5b13 )
by David
04:07
created

Exchange   A

Complexity

Total Complexity 19

Size/Duplication

Total Lines 237
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 19
c 3
b 0
f 1
lcom 1
cbo 2
dl 0
loc 237
rs 10

18 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getName() 0 3 1
A getPassive() 0 3 1
A setPassive() 0 4 1
A getDurable() 0 3 1
A setDurable() 0 4 1
A getAutoDelete() 0 3 1
A setAutoDelete() 0 4 1
A getInternal() 0 3 1
A setInternal() 0 4 1
A getNowait() 0 3 1
A setNowait() 0 4 1
A getArguments() 0 3 1
A setArguments() 0 4 1
A getTicket() 0 3 1
A setTicket() 0 4 1
A init() 0 14 2
A publish() 0 7 1
1
<?php
2
namespace Mouf\AmqpClient\Objects;
3
4
use Mouf\AmqpClient\Client;
5
use Mouf\AmqpClient\RabbitMqObjectInterface;
6
use PhpAmqpLib\Channel\AMQPChannel;
7
use PhpAmqpLib\Message\AMQPMessage;
8
9
class Exchange implements RabbitMqObjectInterface{
10
11
	/**
12
	 * @var Client
13
	 */
14
	private $client;
15
16
	/**
17
	 * Name
18
	 * @var string
19
	 */
20
	private $name;
21
	
22
	/**
23
	 * Type direct, topic, headers or fanout
24
	 * @var string
25
	 */
26
	private $type;
27
	
28
	/**
29
	 * Passive
30
	 * @var bool
31
	 */
32
	private $passive = false;
33
	
34
	/**
35
	 * Durable
36
	 * @var bool
37
	 */
38
	private $durable = false;
39
	
40
	/**
41
	 * Auto delete
42
	 * @var bool
43
	 */
44
	private $autoDelete = false;
45
	
46
	/**
47
	 * Internal
48
	 * @var bool
49
	 */
50
	private $internal = falsel;
51
	
52
	/**
53
	 * No wait
54
	 * @var bool
55
	 */
56
	private $nowait = false;
57
	
58
	/**
59
	 * Arguments
60
	 * @var array
61
	 */
62
	private $arguments = null;
63
	
64
	/**
65
	 * Ticket
66
	 * @var int
67
	 */
68
	private $ticket = null;
69
	
70
	/**
71
	 * Parameter to initialize object only one time
72
	 * @var bool
73
	 */
74
	private $init = false;
75
	
76
	/**
77
	 * Set the to (Binding)
78
	 * @param Binding $to
0 ignored issues
show
Bug introduced by
There is no parameter named $to. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
79
	 * @param string $name
80
	 * @param string $type direct, topic, headers or fanout
81
	 */
82
	public function __construct(Client $client, $name, $type) {
83
		$this->client = $client;
84
		$this->name = $name;
85
		$this->type = $type;
86
	}
87
88
	/**
89
	 * Get the exchange name
90
	 * @return string
91
	 */
92
	public function getName() {
93
		return $this->name;
94
	}
95
	
96
	/**
97
	 * Get passive
98
	 * @return bool
99
	 */
100
	public function getPassive() {
101
		return $this->passive;
102
	}
103
	
104
	/**
105
	 * Set passive
106
	 * @param bool $passive
107
	 * @return Exchange
108
	 */
109
	public function setPassive($passive) {
110
		$this->passive = $passive;
111
		return $this;
112
	}
113
114
	/**
115
	 * Get durable
116
	 * @return bool
117
	 */
118
	public function getDurable() {
119
		return $this->durable;
120
	}
121
	
122
	/**
123
	 * Set durable
124
	 * @param bool $durable
125
	 * @return Exchange
126
	 */
127
	public function setDurable($durable) {
128
		$this->durable = $durable;
129
		return $this;
130
	}
131
132
	/**
133
	 * Get autoDelete
134
	 * @return bool
135
	 */
136
	public function getAutoDelete() {
137
		return $this->autoDelete;
138
	}
139
	
140
	/**
141
	 * Set autoDelete
142
	 * @param bool $autoDelete
143
	 * @return Exchange
144
	 */
145
	public function setAutoDelete($autoDelete) {
146
		$this->autoDelete = $autoDelete;
147
		return $this;
148
	}
149
150
	/**
151
	 * Get internal
152
	 * @return bool
153
	 */
154
	public function getInternal() {
155
		return $this->internal;
156
	}
157
	
158
	/**
159
	 * Set internal
160
	 * @param bool $internal
161
	 * @return Exchange
162
	 */
163
	public function setInternal($internal) {
164
		$this->internal = $internal;
165
		return $this;
166
	}
167
168
	/**
169
	 * Get nowait
170
	 * @return bool
171
	 */
172
	public function getNowait() {
173
		return $this->nowait;
174
	}
175
	
176
	/**
177
	 * Set nowait
178
	 * @param bool $nowait
179
	 * @return Exchange
180
	 */
181
	public function setNowait($nowait) {
182
		$this->nowait = $nowait;
183
		return $this;
184
	}
185
186
	/**
187
	 * Get arguments
188
	 * @return array
189
	 */
190
	public function getArguments() {
191
		return $this->arguments;
192
	}
193
	
194
	/**
195
	 * Set arguments
196
	 * @param array $arguments
197
	 * @return Exchange
198
	 */
199
	public function setArguments($arguments) {
200
		$this->arguments = $arguments;
201
		return $this;
202
	}
203
204
	/**
205
	 * Get ticket
206
	 * @return int
207
	 */
208
	public function getTicket() {
209
		return $this->ticket;
210
	}
211
	
212
	/**
213
	 * Set ticket
214
	 * @param int $ticket
215
	 * @return Exchange
216
	 */
217
	public function setTicket($ticket) {
218
		$this->ticket = $ticket;
219
		return $this;
220
	}
221
	
222
	public function init(AMQPChannel $amqpChannel) {
223
		if(!$this->init) {
224
			$amqpChannel->exchange_declare($this->name,
225
											$this->type,
226
											$this->passive,
227
									        $this->durable,
228
									        $this->auto_delete,
0 ignored issues
show
Bug introduced by
The property auto_delete does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
229
									        $this->internal,
230
									        $this->nowait,
231
									        $this->arguments,
232
									        $this->ticket);
233
			$this->init = true;
234
		}
235
	}
236
	
237
	public function publish(AMQPMessage $message, $routingKey, $mandatory = false,
238
							$immediate = false,
239
							$ticket = null) {
240
		$channel = $this->client->getChannel();
241
242
		$channel->basic_publish($message, $this->name, $routingKey, $mandatory, $immediate, $ticket);
243
	}
244
	
245
}