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