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 | trait QqTrait |
|
|
|||
8 | { |
||
9 | /** |
||
10 | * Qq username. |
||
11 | * |
||
12 | * @var string|null |
||
13 | * |
||
14 | * @ORM\Column(nullable = true) |
||
15 | */ |
||
16 | private $qqUsername; |
||
17 | |||
18 | /** |
||
19 | * Qq nickname. |
||
20 | * |
||
21 | * @var string|null |
||
22 | * |
||
23 | * @ORM\Column(nullable = true) |
||
24 | */ |
||
25 | private $qqNickname; |
||
26 | |||
27 | /** |
||
28 | * Qq first name. |
||
29 | * |
||
30 | * @var string|null |
||
31 | * |
||
32 | * @ORM\Column(nullable = true) |
||
33 | */ |
||
34 | private $qqFirstName; |
||
35 | |||
36 | /** |
||
37 | * Qq last name. |
||
38 | * |
||
39 | * @var string|null |
||
40 | * |
||
41 | * @ORM\Column(nullable = true) |
||
42 | */ |
||
43 | private $qqLastName; |
||
44 | |||
45 | /** |
||
46 | * Qq real name. |
||
47 | * |
||
48 | * @var string|null |
||
49 | * |
||
50 | * @ORM\Column(nullable = true) |
||
51 | */ |
||
52 | private $qqRealName; |
||
53 | |||
54 | /** |
||
55 | * Qq profilePicture. |
||
56 | * |
||
57 | * @var string|null |
||
58 | * |
||
59 | * @ORM\Column(nullable = true) |
||
60 | */ |
||
61 | private $qqEmail; |
||
62 | |||
63 | /** |
||
64 | * Qq profile picture. |
||
65 | * |
||
66 | * @var string|null |
||
67 | * |
||
68 | * @ORM\Column(nullable = true) |
||
69 | */ |
||
70 | private $qqProfilePicture; |
||
71 | |||
72 | /** |
||
73 | * Qq access token. |
||
74 | * |
||
75 | * @var string|null |
||
76 | * |
||
77 | * @ORM\Column(nullable = true) |
||
78 | */ |
||
79 | private $qqAccessToken; |
||
80 | |||
81 | /** |
||
82 | * Qq refresh token. |
||
83 | * |
||
84 | * @var string|null |
||
85 | * |
||
86 | * @ORM\Column(nullable = true) |
||
87 | */ |
||
88 | private $qqRefreshToken; |
||
89 | |||
90 | /** |
||
91 | * Qq expires in. |
||
92 | * |
||
93 | * @var string|null |
||
94 | * |
||
95 | * @ORM\Column(nullable = true) |
||
96 | */ |
||
97 | private $qqExpiresIn; |
||
98 | |||
99 | /** |
||
100 | * Qq data. |
||
101 | * |
||
102 | * @var array|null |
||
103 | * |
||
104 | * @ORM\Column(type = "json_array", nullable = true) |
||
105 | */ |
||
106 | private $qqData; |
||
107 | |||
108 | /** |
||
109 | * Get Qq access token. |
||
110 | * |
||
111 | * @return string|null |
||
112 | */ |
||
113 | 3 | public function getQqAccessToken() |
|
117 | |||
118 | /** |
||
119 | * Gets the Qq data. |
||
120 | * |
||
121 | * @return array|null |
||
122 | */ |
||
123 | 3 | public function getQqData() |
|
127 | |||
128 | /** |
||
129 | * Get Qq email. |
||
130 | * |
||
131 | * @return string|null |
||
132 | */ |
||
133 | 3 | public function getQqEmail() |
|
137 | |||
138 | /** |
||
139 | * Get Qq expires in. |
||
140 | * |
||
141 | * @return string|null |
||
142 | */ |
||
143 | 3 | public function getQqExpiresIn() |
|
147 | |||
148 | /** |
||
149 | * Get Qq first name. |
||
150 | * |
||
151 | * @return string|null |
||
152 | */ |
||
153 | 3 | public function getQqFirstName() |
|
157 | |||
158 | /** |
||
159 | * Get Qq last name. |
||
160 | * |
||
161 | * @return string|null |
||
162 | */ |
||
163 | 3 | public function getQqLastName() |
|
167 | |||
168 | /** |
||
169 | * Get Qq nickname. |
||
170 | * |
||
171 | * @return string|null |
||
172 | */ |
||
173 | 3 | public function getQqNickname() |
|
177 | |||
178 | /** |
||
179 | * Get Qq profile picture. |
||
180 | * |
||
181 | * @return string|null |
||
182 | */ |
||
183 | 3 | public function getQqProfilePicture() |
|
187 | |||
188 | /** |
||
189 | * Get Qq real name. |
||
190 | * |
||
191 | * @return string|null |
||
192 | */ |
||
193 | 3 | public function getQqRealName() |
|
197 | |||
198 | /** |
||
199 | * Get Qq refresh token. |
||
200 | * |
||
201 | * @return string|null |
||
202 | */ |
||
203 | 3 | public function getQqRefreshToken() |
|
207 | |||
208 | /** |
||
209 | * Get Qq username. |
||
210 | * |
||
211 | * @return string|null |
||
212 | */ |
||
213 | 3 | public function getQqUsername() |
|
217 | |||
218 | /** |
||
219 | * Set Qq access token. |
||
220 | * |
||
221 | * @param string|null $accessToken |
||
222 | * |
||
223 | * @return self |
||
224 | */ |
||
225 | 3 | public function setQqAccessToken($accessToken) |
|
231 | |||
232 | /** |
||
233 | * Sets the Qq data. |
||
234 | * |
||
235 | * @param array|null $data |
||
236 | * |
||
237 | * @return self |
||
238 | */ |
||
239 | 3 | public function setQqData(array $data = null) |
|
245 | |||
246 | /** |
||
247 | * Set Qq email. |
||
248 | * |
||
249 | * @param string|null $email |
||
250 | * |
||
251 | * @return self |
||
252 | */ |
||
253 | 3 | public function setQqEmail($email) |
|
259 | |||
260 | /** |
||
261 | * Set Qq expires in. |
||
262 | * |
||
263 | * @param string|null $expiresIn |
||
264 | * |
||
265 | * @return self |
||
266 | */ |
||
267 | 3 | public function setQqExpiresIn($expiresIn) |
|
273 | |||
274 | /** |
||
275 | * Set Qq first name. |
||
276 | * |
||
277 | * @param string|null $firstName |
||
278 | * |
||
279 | * @return self |
||
280 | */ |
||
281 | 3 | public function setQqFirstName($firstName) |
|
287 | |||
288 | /** |
||
289 | * Set Qq last name. |
||
290 | * |
||
291 | * @param string|null $lastName |
||
292 | * |
||
293 | * @return self |
||
294 | */ |
||
295 | 3 | public function setQqLastName($lastName) |
|
301 | |||
302 | /** |
||
303 | * Set Qq nickname. |
||
304 | * |
||
305 | * @param string|null $nickname |
||
306 | * |
||
307 | * @return self |
||
308 | */ |
||
309 | 3 | public function setQqNickname($nickname) |
|
315 | |||
316 | /** |
||
317 | * Set Qq profile picture. |
||
318 | * |
||
319 | * @param string|null $profilePicture |
||
320 | * |
||
321 | * @return self |
||
322 | */ |
||
323 | 3 | public function setQqProfilePicture($profilePicture) |
|
329 | |||
330 | /** |
||
331 | * Set Qq real name. |
||
332 | * |
||
333 | * @param string|null $realName |
||
334 | * |
||
335 | * @return self |
||
336 | */ |
||
337 | 3 | public function setQqRealName($realName) |
|
343 | |||
344 | /** |
||
345 | * Set Qq refresh token. |
||
346 | * |
||
347 | * @param string|null $refreshToken |
||
348 | * |
||
349 | * @return self |
||
350 | */ |
||
351 | 3 | public function setQqRefreshToken($refreshToken) |
|
357 | |||
358 | /** |
||
359 | * Set Qq username. |
||
360 | * |
||
361 | * @param string|null $username |
||
362 | * |
||
363 | * @return self |
||
364 | */ |
||
365 | 3 | public function setQqUsername($username) |
|
371 | } |
||
372 |
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.