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 declare(strict_types=1); |
||
8 | View Code Duplication | abstract class EmptyQueue implements QueueInterface, EmptyResourceInterface |
|
|
|||
9 | { |
||
10 | /** |
||
11 | * @return int |
||
12 | */ |
||
13 | public function messages() : int |
||
17 | |||
18 | /** |
||
19 | * @return Details |
||
20 | */ |
||
21 | public function messagesDetails() : Details |
||
25 | |||
26 | /** |
||
27 | * @return int |
||
28 | */ |
||
29 | public function messagesReady() : int |
||
33 | |||
34 | /** |
||
35 | * @return Details |
||
36 | */ |
||
37 | public function messagesReadyDetails() : Details |
||
41 | |||
42 | /** |
||
43 | * @return int |
||
44 | */ |
||
45 | public function messagesUnacknowledged() : int |
||
49 | |||
50 | /** |
||
51 | * @return Details |
||
52 | */ |
||
53 | public function messagesUnacknowledgedDetails() : Details |
||
57 | |||
58 | /** |
||
59 | * @return DateTime |
||
60 | */ |
||
61 | public function idleSince() : DateTime |
||
65 | |||
66 | /** |
||
67 | * @return mixed |
||
68 | */ |
||
69 | public function consumerUtilisation() : mixed |
||
73 | |||
74 | /** |
||
75 | * @return mixed |
||
76 | */ |
||
77 | public function policy() : mixed |
||
81 | |||
82 | /** |
||
83 | * @return mixed |
||
84 | */ |
||
85 | public function exclusiveConsumerTag() : mixed |
||
89 | |||
90 | /** |
||
91 | * @return int |
||
92 | */ |
||
93 | public function consumers() : int |
||
97 | |||
98 | /** |
||
99 | * @return mixed |
||
100 | */ |
||
101 | public function recoverableSlaves() : mixed |
||
105 | |||
106 | /** |
||
107 | * @return string |
||
108 | */ |
||
109 | public function state() : string |
||
113 | |||
114 | /** |
||
115 | * @return int |
||
116 | */ |
||
117 | public function messagesRam() : int |
||
121 | |||
122 | /** |
||
123 | * @return int |
||
124 | */ |
||
125 | public function messagesReadyRam() : int |
||
129 | |||
130 | /** |
||
131 | * @return int |
||
132 | */ |
||
133 | public function messagesUnacknowledgedRam() : int |
||
137 | |||
138 | /** |
||
139 | * @return int |
||
140 | */ |
||
141 | public function messagesPersistent() : int |
||
145 | |||
146 | /** |
||
147 | * @return int |
||
148 | */ |
||
149 | public function messageBytes() : int |
||
153 | |||
154 | /** |
||
155 | * @return int |
||
156 | */ |
||
157 | public function messageBytesReady() : int |
||
161 | |||
162 | /** |
||
163 | * @return int |
||
164 | */ |
||
165 | public function messageBytesUnacknowledged() : int |
||
169 | |||
170 | /** |
||
171 | * @return int |
||
172 | */ |
||
173 | public function messageBytesRam() : int |
||
177 | |||
178 | /** |
||
179 | * @return int |
||
180 | */ |
||
181 | public function messageBytesPersistent() : int |
||
185 | |||
186 | /** |
||
187 | * @return DateTime |
||
188 | */ |
||
189 | public function headMessageTimestamp() : DateTime |
||
193 | |||
194 | /** |
||
195 | * @return int |
||
196 | */ |
||
197 | public function diskReads() : int |
||
201 | |||
202 | /** |
||
203 | * @return int |
||
204 | */ |
||
205 | public function diskWrites() : int |
||
209 | |||
210 | /** |
||
211 | * @return Queue\BackingQueueStatus |
||
212 | */ |
||
213 | public function backingQueueStatus() : Queue\BackingQueueStatus |
||
217 | |||
218 | /** |
||
219 | * @return string |
||
220 | */ |
||
221 | public function name() : string |
||
225 | |||
226 | /** |
||
227 | * @return string |
||
228 | */ |
||
229 | public function vhost() : string |
||
233 | |||
234 | /** |
||
235 | * @return bool |
||
236 | */ |
||
237 | public function durable() : bool |
||
241 | |||
242 | /** |
||
243 | * @return bool |
||
244 | */ |
||
245 | public function autoDelete() : bool |
||
249 | |||
250 | /** |
||
251 | * @return bool |
||
252 | */ |
||
253 | public function exclusive() : bool |
||
257 | |||
258 | /** |
||
259 | * @return array |
||
260 | */ |
||
261 | public function arguments() : array |
||
265 | |||
266 | /** |
||
267 | * @return string |
||
268 | */ |
||
269 | public function node() : string |
||
273 | } |
||
274 |
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.