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); |
||
7 | View Code Duplication | abstract class EmptyConnection implements ConnectionInterface, EmptyResourceInterface |
|
|
|||
8 | { |
||
9 | /** |
||
10 | * @return int |
||
11 | */ |
||
12 | public function recvOct() : int |
||
16 | |||
17 | /** |
||
18 | * @return int |
||
19 | */ |
||
20 | public function sendOct() : int |
||
24 | |||
25 | /** |
||
26 | * @return Details |
||
27 | */ |
||
28 | public function recvOctDetails() : Details |
||
32 | |||
33 | /** |
||
34 | * @return Details |
||
35 | */ |
||
36 | public function sendOctDetails() : Details |
||
40 | |||
41 | /** |
||
42 | * @return int |
||
43 | */ |
||
44 | public function recvCnt() : int |
||
48 | |||
49 | /** |
||
50 | * @return int |
||
51 | */ |
||
52 | public function sendCnt() : int |
||
56 | |||
57 | /** |
||
58 | * @return int |
||
59 | */ |
||
60 | public function sendPend() : int |
||
64 | |||
65 | /** |
||
66 | * @return string |
||
67 | */ |
||
68 | public function state() : string |
||
72 | |||
73 | /** |
||
74 | * @return int |
||
75 | */ |
||
76 | public function channels() : int |
||
80 | |||
81 | /** |
||
82 | * @return string |
||
83 | */ |
||
84 | public function type() : string |
||
88 | |||
89 | /** |
||
90 | * @return string |
||
91 | */ |
||
92 | public function node() : string |
||
96 | |||
97 | /** |
||
98 | * @return string |
||
99 | */ |
||
100 | public function name() : string |
||
104 | |||
105 | /** |
||
106 | * @return int |
||
107 | */ |
||
108 | public function port() : int |
||
112 | |||
113 | /** |
||
114 | * @return int |
||
115 | */ |
||
116 | public function peerPort() : int |
||
120 | |||
121 | /** |
||
122 | * @return string |
||
123 | */ |
||
124 | public function host() : string |
||
128 | |||
129 | /** |
||
130 | * @return string |
||
131 | */ |
||
132 | public function peerHost() : string |
||
136 | |||
137 | /** |
||
138 | * @return bool |
||
139 | */ |
||
140 | public function ssl() : bool |
||
144 | |||
145 | /** |
||
146 | * @return mixed |
||
147 | */ |
||
148 | public function peerCertSubject() : mixed |
||
152 | |||
153 | /** |
||
154 | * @return mixed |
||
155 | */ |
||
156 | public function peerCertIssuer() : mixed |
||
160 | |||
161 | /** |
||
162 | * @return mixed |
||
163 | */ |
||
164 | public function peerCertValidity() : mixed |
||
168 | |||
169 | /** |
||
170 | * @return string |
||
171 | */ |
||
172 | public function authMechanism() : string |
||
176 | |||
177 | /** |
||
178 | * @return mixed |
||
179 | */ |
||
180 | public function sslProtocol() : mixed |
||
184 | |||
185 | /** |
||
186 | * @return mixed |
||
187 | */ |
||
188 | public function sslKeyExchange() : mixed |
||
192 | |||
193 | /** |
||
194 | * @return mixed |
||
195 | */ |
||
196 | public function sslCipher() : mixed |
||
200 | |||
201 | /** |
||
202 | * @return mixed |
||
203 | */ |
||
204 | public function sslHash() : mixed |
||
208 | |||
209 | /** |
||
210 | * @return string |
||
211 | */ |
||
212 | public function protocol() : string |
||
216 | |||
217 | /** |
||
218 | * @return string |
||
219 | */ |
||
220 | public function user() : string |
||
224 | |||
225 | /** |
||
226 | * @return string |
||
227 | */ |
||
228 | public function vhost() : string |
||
232 | |||
233 | /** |
||
234 | * @return int |
||
235 | */ |
||
236 | public function timeout() : int |
||
240 | |||
241 | /** |
||
242 | * @return int |
||
243 | */ |
||
244 | public function frameMax() : int |
||
248 | |||
249 | /** |
||
250 | * @return int |
||
251 | */ |
||
252 | public function channelMax() : int |
||
256 | |||
257 | /** |
||
258 | * @return Connection\ClientProperties |
||
259 | */ |
||
260 | public function clientProperties() : Connection\ClientProperties |
||
264 | |||
265 | /** |
||
266 | * @return int |
||
267 | */ |
||
268 | public function connectedAt() : int |
||
272 | } |
||
273 |
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.