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