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