Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
7 | View Code Duplication | class WorkerQueueBag implements QueueBagInterface |
|
|
|||
8 | { |
||
9 | private $options; |
||
10 | |||
11 | public function __construct( |
||
40 | |||
41 | /** |
||
42 | * @param $queue |
||
43 | */ |
||
44 | public function setQueue($queue) |
||
48 | |||
49 | /** |
||
50 | * @return string|mixed |
||
51 | */ |
||
52 | public function getQueue() |
||
56 | |||
57 | /** |
||
58 | * @param $qos |
||
59 | */ |
||
60 | public function setBasicQos($qos) |
||
64 | |||
65 | /** |
||
66 | * @return int |
||
67 | */ |
||
68 | public function getBasicQos() |
||
72 | |||
73 | /** |
||
74 | * @param $passive |
||
75 | */ |
||
76 | public function setPassive($passive) |
||
80 | |||
81 | /** |
||
82 | * @return bool |
||
83 | */ |
||
84 | public function getPassive() |
||
88 | |||
89 | /** |
||
90 | * @param $durable |
||
91 | */ |
||
92 | public function setDurable($durable) |
||
96 | |||
97 | /** |
||
98 | * @return bool |
||
99 | */ |
||
100 | public function getDurable() |
||
104 | |||
105 | /** |
||
106 | * @param $exclusive |
||
107 | */ |
||
108 | public function setExclusive($exclusive) |
||
112 | |||
113 | /** |
||
114 | * @return bool |
||
115 | */ |
||
116 | public function getExclusive() |
||
120 | |||
121 | /** |
||
122 | * @param $autoDelete |
||
123 | */ |
||
124 | public function setAutoDelete($autoDelete) |
||
128 | |||
129 | /** |
||
130 | * @return bool |
||
131 | */ |
||
132 | public function getAutoDelete() |
||
136 | |||
137 | /** |
||
138 | * @param $noWait |
||
139 | */ |
||
140 | public function setNoWait($noWait) |
||
144 | |||
145 | /** |
||
146 | * @return bool |
||
147 | */ |
||
148 | public function getNoWait() |
||
152 | |||
153 | /** |
||
154 | * @param array $arguments |
||
155 | */ |
||
156 | public function setArguments(array $arguments) |
||
160 | |||
161 | /** |
||
162 | * @return string |
||
163 | */ |
||
164 | public function getArguments() |
||
168 | |||
169 | /** |
||
170 | * @param $ticket |
||
171 | */ |
||
172 | public function setTicket($ticket) |
||
176 | |||
177 | /** |
||
178 | * @return string |
||
179 | */ |
||
180 | public function getTicket() |
||
184 | |||
185 | /** |
||
186 | * @param $consumerTag |
||
187 | */ |
||
188 | public function setConsumerTag($consumerTag) |
||
192 | |||
193 | /** |
||
194 | * @return string |
||
195 | */ |
||
196 | public function getConsumerTag() |
||
200 | |||
201 | /** |
||
202 | * @param $noAck |
||
203 | */ |
||
204 | public function setNoAck($noAck) |
||
208 | |||
209 | /** |
||
210 | * @return bool |
||
211 | */ |
||
212 | public function getNoAck() |
||
216 | |||
217 | /** |
||
218 | * @param $noLocal |
||
219 | */ |
||
220 | public function setNoLocal($noLocal) |
||
224 | |||
225 | /** |
||
226 | * @return bool |
||
227 | */ |
||
228 | public function getNoLocal() |
||
232 | |||
233 | /** |
||
234 | * @return array |
||
235 | */ |
||
236 | public function getQueueDeclare() |
||
249 | |||
250 | /** |
||
251 | * @return array |
||
252 | */ |
||
253 | public function getQueueConsume() |
||
266 | |||
267 | /** |
||
268 | * @return array|false |
||
269 | */ |
||
270 | public function getExchangeDeclare() |
||
274 | |||
275 | /** |
||
276 | * @return string |
||
277 | */ |
||
278 | public function getExchange() |
||
282 | |||
283 | /** |
||
284 | * @return string |
||
285 | */ |
||
286 | public function getType() |
||
290 | } |
||
291 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.