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:
Complex classes like Account often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use Account, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
5 | class Account |
||
6 | { |
||
7 | /** |
||
8 | * The account's username. A cPanel account or reseller username on the server. |
||
9 | * |
||
10 | * @var string |
||
11 | */ |
||
12 | public $user; |
||
13 | |||
14 | /** |
||
15 | * The account's main domain. A valid domainnameon the account. |
||
16 | * |
||
17 | * @var string |
||
18 | */ |
||
19 | public $domain; |
||
20 | |||
21 | |||
22 | /** |
||
23 | * The percentage of failed or deferred email messages that the account can send per hour |
||
24 | * before outgoing mail is rate-limited. |
||
25 | * |
||
26 | * unlimited / An integer that represents a percentage of messages. |
||
27 | * |
||
28 | * @var integer |
||
29 | */ |
||
30 | public $maxDeferFailMailPercentage; |
||
31 | |||
32 | /** |
||
33 | * The account's shell. The absolute path to a shell location on the server. |
||
34 | * |
||
35 | * @var string |
||
36 | */ |
||
37 | public $shell; |
||
38 | |||
39 | /** |
||
40 | * The type of mailbox the account uses. mdbox/maildir |
||
41 | * |
||
42 | * @var string |
||
43 | */ |
||
44 | public $mailboxFormat; |
||
45 | |||
46 | /** |
||
47 | * The account's cPanel interface theme. paper_lantern or another valid theme on the server. |
||
48 | * |
||
49 | * @var string |
||
50 | */ |
||
51 | public $theme; |
||
52 | |||
53 | /** |
||
54 | * The account's maximum number of mailing lists. unlimited or an integer that represents a number of mailing lists. |
||
55 | * |
||
56 | * @var integer |
||
57 | */ |
||
58 | public $maxMailingList; |
||
59 | |||
60 | /** |
||
61 | * The account's maximum number of addon domains. |
||
62 | * |
||
63 | * Possible values - |
||
64 | * unlimited |
||
65 | * unknown* — The account cannot use addon domains |
||
66 | * an integer that represents a number of addon domains. |
||
67 | * |
||
68 | * @var integer |
||
69 | */ |
||
70 | public $maxAddonDomains; |
||
71 | |||
72 | /** |
||
73 | * The account's maximum number of parked domains. |
||
74 | * |
||
75 | * Possible values - |
||
76 | * unlimited |
||
77 | * unknown* — The account cannot use parked domains |
||
78 | * an integer that represents a number of parked domains. |
||
79 | * |
||
80 | * @var integer |
||
81 | */ |
||
82 | public $maxParkedDomains; |
||
83 | |||
84 | /** |
||
85 | * |
||
86 | * @var string |
||
87 | */ |
||
88 | public $ipv6; |
||
89 | |||
90 | /** |
||
91 | * |
||
92 | * @var string |
||
93 | */ |
||
94 | public $email; |
||
95 | |||
96 | /** |
||
97 | * |
||
98 | * @var string |
||
99 | */ |
||
100 | public $partition; |
||
101 | |||
102 | /** |
||
103 | * |
||
104 | * @var integer |
||
105 | */ |
||
106 | public $maxSQL; |
||
107 | |||
108 | /** |
||
109 | * |
||
110 | * @var \DateTime |
||
111 | */ |
||
112 | public $createdAt; |
||
113 | |||
114 | /** |
||
115 | * |
||
116 | * @var bool |
||
117 | */ |
||
118 | public $isBackupEnabled; |
||
119 | |||
120 | /** |
||
121 | * |
||
122 | * @var bool |
||
123 | */ |
||
124 | public $outgoingMailSuspended; |
||
125 | |||
126 | /** |
||
127 | * |
||
128 | * @var string |
||
129 | */ |
||
130 | public $owner; |
||
131 | |||
132 | /** |
||
133 | * |
||
134 | * @var string |
||
135 | */ |
||
136 | public $suspensionReason; |
||
137 | |||
138 | /** |
||
139 | * |
||
140 | * @var bool |
||
141 | */ |
||
142 | public $isLocked; |
||
143 | |||
144 | /** |
||
145 | * |
||
146 | * @var bool |
||
147 | */ |
||
148 | public $outgoingMailCanHold; |
||
149 | |||
150 | /** |
||
151 | * |
||
152 | * @var \DateTime |
||
153 | */ |
||
154 | public $suspendedAt; |
||
155 | |||
156 | /** |
||
157 | * |
||
158 | * @var int |
||
159 | */ |
||
160 | public $maxFTP; |
||
161 | |||
162 | /** |
||
163 | * |
||
164 | * @var int |
||
165 | */ |
||
166 | public $maxEmailPerHour; |
||
167 | |||
168 | /** |
||
169 | * |
||
170 | * @var bool |
||
171 | */ |
||
172 | public $temporary; |
||
173 | |||
174 | /** |
||
175 | * |
||
176 | * @var string |
||
177 | */ |
||
178 | public $ipAddress; |
||
179 | |||
180 | /** |
||
181 | * |
||
182 | * @var int |
||
183 | */ |
||
184 | public $uid; |
||
185 | |||
186 | /** |
||
187 | * |
||
188 | * @var bool |
||
189 | */ |
||
190 | public $suspended; |
||
191 | |||
192 | /** |
||
193 | * |
||
194 | * @var bool |
||
195 | */ |
||
196 | public $backup; |
||
197 | |||
198 | /** |
||
199 | * |
||
200 | * @var int |
||
201 | */ |
||
202 | public $maxPOP; |
||
203 | |||
204 | /** |
||
205 | * |
||
206 | * @var int |
||
207 | */ |
||
208 | public $maxSubDomain; |
||
209 | |||
210 | /** |
||
211 | * |
||
212 | * @var int |
||
213 | */ |
||
214 | public $maxEmailAccountQuota; |
||
215 | |||
216 | /** |
||
217 | * |
||
218 | * @var int |
||
219 | */ |
||
220 | public $diskUsed; |
||
221 | |||
222 | /** |
||
223 | * |
||
224 | * @var int |
||
225 | */ |
||
226 | public $inodeUsed; |
||
227 | |||
228 | /** |
||
229 | * |
||
230 | * @var |
||
231 | */ |
||
232 | public $minDeferFailToTriggerProtection; |
||
233 | |||
234 | /** |
||
235 | * |
||
236 | * @var string |
||
237 | */ |
||
238 | public $planName; |
||
239 | |||
240 | /** |
||
241 | * |
||
242 | * @var int |
||
243 | */ |
||
244 | public $inodesLimit; |
||
245 | |||
246 | /** |
||
247 | * |
||
248 | * @var int |
||
249 | */ |
||
250 | public $diskLimit; |
||
251 | |||
252 | /** |
||
253 | * |
||
254 | * @var bool |
||
255 | */ |
||
256 | public $legacyBackup; |
||
257 | |||
258 | /** |
||
259 | * @var string|null |
||
260 | */ |
||
261 | public $password; |
||
262 | |||
263 | /** |
||
264 | * @var bool|null |
||
265 | */ |
||
266 | public $cgiEnable; |
||
267 | |||
268 | /** |
||
269 | * @var bool |
||
270 | */ |
||
271 | public $spamAssassinEnable; |
||
272 | |||
273 | /** |
||
274 | * @var bool |
||
275 | */ |
||
276 | public $frontPageEnable; |
||
277 | |||
278 | /** |
||
279 | * @var int |
||
280 | */ |
||
281 | public $bandwidthLimit; |
||
282 | |||
283 | /** |
||
284 | * @var string|null |
||
285 | */ |
||
286 | public $languagePreference; |
||
287 | |||
288 | /** |
||
289 | * |
||
290 | * @return string |
||
291 | */ |
||
292 | public function getUser() |
||
296 | |||
297 | /** |
||
298 | * |
||
299 | * @param string $user |
||
300 | * |
||
301 | * @return Account |
||
302 | */ |
||
303 | public function setUser($user) |
||
309 | |||
310 | /** |
||
311 | * |
||
312 | * @return string |
||
313 | */ |
||
314 | public function getDomain() |
||
318 | |||
319 | /** |
||
320 | * |
||
321 | * @param string $domain |
||
322 | * |
||
323 | * @return Account |
||
324 | */ |
||
325 | public function setDomain($domain) |
||
331 | |||
332 | /** |
||
333 | * |
||
334 | * @return int |
||
335 | */ |
||
336 | public function getMaxDeferFailMailPercentage() |
||
340 | |||
341 | /** |
||
342 | * |
||
343 | * @param int $maxDeferFailMailPercentage |
||
344 | * |
||
345 | * @return Account |
||
346 | */ |
||
347 | public function setMaxDeferFailMailPercentage($maxDeferFailMailPercentage) |
||
353 | |||
354 | /** |
||
355 | * |
||
356 | * @return string |
||
357 | */ |
||
358 | public function getShell() |
||
362 | |||
363 | /** |
||
364 | * |
||
365 | * @param string $shell |
||
366 | * |
||
367 | * @return Account |
||
368 | */ |
||
369 | public function setShell($shell) |
||
375 | |||
376 | /** |
||
377 | * |
||
378 | * @return string |
||
379 | */ |
||
380 | public function getMailboxFormat() |
||
384 | |||
385 | /** |
||
386 | * |
||
387 | * @param string $mailboxFormat |
||
388 | * |
||
389 | * @return Account |
||
390 | */ |
||
391 | public function setMailboxFormat($mailboxFormat) |
||
397 | |||
398 | /** |
||
399 | * |
||
400 | * @return string |
||
401 | */ |
||
402 | public function getTheme() |
||
406 | |||
407 | /** |
||
408 | * |
||
409 | * @param string $theme |
||
410 | * |
||
411 | * @return Account |
||
412 | */ |
||
413 | public function setTheme($theme) |
||
419 | |||
420 | /** |
||
421 | * |
||
422 | * @return int |
||
423 | */ |
||
424 | public function getMaxMailingList() |
||
428 | |||
429 | /** |
||
430 | * |
||
431 | * @param int $maxMailingList |
||
432 | * |
||
433 | * @return Account |
||
434 | */ |
||
435 | public function setMaxMailingList($maxMailingList) |
||
441 | |||
442 | /** |
||
443 | * |
||
444 | * @return int |
||
445 | */ |
||
446 | public function getMaxAddonDomains() |
||
450 | |||
451 | /** |
||
452 | * |
||
453 | * @param int $maxAddonDomains |
||
454 | * |
||
455 | * @return Account |
||
456 | */ |
||
457 | public function setMaxAddonDomains($maxAddonDomains) |
||
463 | |||
464 | /** |
||
465 | * |
||
466 | * @return int |
||
467 | */ |
||
468 | public function getMaxParkedDomains() |
||
472 | |||
473 | /** |
||
474 | * |
||
475 | * @param int $maxParkedDomains |
||
476 | * |
||
477 | * @return Account |
||
478 | */ |
||
479 | public function setMaxParkedDomains($maxParkedDomains) |
||
485 | |||
486 | /** |
||
487 | * |
||
488 | * @return string |
||
489 | */ |
||
490 | public function getIpv6() |
||
494 | |||
495 | /** |
||
496 | * |
||
497 | * @param string $ipv6 |
||
498 | * |
||
499 | * @return Account |
||
500 | */ |
||
501 | public function setIpv6($ipv6) |
||
507 | |||
508 | /** |
||
509 | * |
||
510 | * @return string |
||
511 | */ |
||
512 | public function getEmail() |
||
516 | |||
517 | /** |
||
518 | * |
||
519 | * @param string $email |
||
520 | * |
||
521 | * @return Account |
||
522 | */ |
||
523 | public function setEmail($email) |
||
529 | |||
530 | /** |
||
531 | * |
||
532 | * @return string |
||
533 | */ |
||
534 | public function getPartition() |
||
538 | |||
539 | /** |
||
540 | * |
||
541 | * @param string $partition |
||
542 | * |
||
543 | * @return Account |
||
544 | */ |
||
545 | public function setPartition($partition) |
||
551 | |||
552 | /** |
||
553 | * |
||
554 | * @return int |
||
555 | */ |
||
556 | public function getMaxSQL() |
||
560 | |||
561 | /** |
||
562 | * |
||
563 | * @param int $maxSQL |
||
564 | * |
||
565 | * @return Account |
||
566 | */ |
||
567 | public function setMaxSQL($maxSQL) |
||
573 | |||
574 | /** |
||
575 | * |
||
576 | * @return \DateTime |
||
577 | */ |
||
578 | public function getCreatedAt() |
||
582 | |||
583 | /** |
||
584 | * |
||
585 | * @param \DateTime $createdAt |
||
586 | * |
||
587 | * @return Account |
||
588 | */ |
||
589 | public function setCreatedAt($createdAt) |
||
595 | |||
596 | /** |
||
597 | * |
||
598 | * @return bool |
||
599 | */ |
||
600 | public function isBackupEnabled() |
||
604 | |||
605 | /** |
||
606 | * |
||
607 | * @param bool $isBackupEnabled |
||
608 | * |
||
609 | * @return Account |
||
610 | */ |
||
611 | public function setIsBackupEnabled($isBackupEnabled) |
||
617 | |||
618 | /** |
||
619 | * |
||
620 | * @return bool |
||
621 | */ |
||
622 | public function isOutgoingMailSuspended() |
||
626 | |||
627 | /** |
||
628 | * |
||
629 | * @param bool $outgoingMailSuspended |
||
630 | * |
||
631 | * @return Account |
||
632 | */ |
||
633 | public function setOutgoingMailSuspended($outgoingMailSuspended) |
||
639 | |||
640 | /** |
||
641 | * |
||
642 | * @return string |
||
643 | */ |
||
644 | public function getOwner() |
||
648 | |||
649 | /** |
||
650 | * |
||
651 | * @param string $owner |
||
652 | * |
||
653 | * @return Account |
||
654 | */ |
||
655 | public function setOwner($owner) |
||
661 | |||
662 | /** |
||
663 | * |
||
664 | * @return string |
||
665 | */ |
||
666 | public function getSuspensionReason() |
||
670 | |||
671 | /** |
||
672 | * |
||
673 | * @param string $suspensionReason |
||
674 | * |
||
675 | * @return Account |
||
676 | */ |
||
677 | public function setSuspensionReason($suspensionReason) |
||
683 | |||
684 | /** |
||
685 | * |
||
686 | * @return bool |
||
687 | */ |
||
688 | public function isLocked() |
||
692 | |||
693 | /** |
||
694 | * |
||
695 | * @param bool $isLocked |
||
696 | * |
||
697 | * @return Account |
||
698 | */ |
||
699 | public function setIsLocked($isLocked) |
||
705 | |||
706 | /** |
||
707 | * |
||
708 | * @return bool |
||
709 | */ |
||
710 | public function isOutgoingMailCanHold() |
||
714 | |||
715 | /** |
||
716 | * |
||
717 | * @param bool $outgoingMailCanHold |
||
718 | * |
||
719 | * @return Account |
||
720 | */ |
||
721 | public function setOutgoingMailCanHold($outgoingMailCanHold) |
||
727 | |||
728 | /** |
||
729 | * |
||
730 | * @return \DateTime |
||
731 | */ |
||
732 | public function getSuspendedAt() |
||
736 | |||
737 | /** |
||
738 | * |
||
739 | * @param \DateTime $suspendedAt |
||
740 | * |
||
741 | * @return Account |
||
742 | */ |
||
743 | public function setSuspendedAt($suspendedAt) |
||
749 | |||
750 | /** |
||
751 | * |
||
752 | * @return int |
||
753 | */ |
||
754 | public function getMaxFTP() |
||
758 | |||
759 | /** |
||
760 | * |
||
761 | * @param int $maxFTP |
||
762 | * |
||
763 | * @return Account |
||
764 | */ |
||
765 | public function setMaxFTP($maxFTP) |
||
771 | |||
772 | /** |
||
773 | * |
||
774 | * @return int |
||
775 | */ |
||
776 | public function getMaxEmailPerHour() |
||
780 | |||
781 | /** |
||
782 | * |
||
783 | * @param int $maxEmailPerHour |
||
784 | * |
||
785 | * @return Account |
||
786 | */ |
||
787 | public function setMaxEmailPerHour($maxEmailPerHour) |
||
793 | |||
794 | /** |
||
795 | * |
||
796 | * @return bool |
||
797 | */ |
||
798 | public function isTemporary() |
||
802 | |||
803 | /** |
||
804 | * |
||
805 | * @param bool $temporary |
||
806 | * |
||
807 | * @return Account |
||
808 | */ |
||
809 | public function setTemporary($temporary) |
||
815 | |||
816 | /** |
||
817 | * |
||
818 | * @return string |
||
819 | */ |
||
820 | public function getIpAddress() |
||
824 | |||
825 | /** |
||
826 | * |
||
827 | * @param string $ipAddress |
||
828 | * |
||
829 | * @return Account |
||
830 | */ |
||
831 | public function setIpAddress($ipAddress) |
||
837 | |||
838 | /** |
||
839 | * |
||
840 | * @return int |
||
841 | */ |
||
842 | public function getUid() |
||
846 | |||
847 | /** |
||
848 | * |
||
849 | * @param int $uid |
||
850 | * |
||
851 | * @return Account |
||
852 | */ |
||
853 | public function setUid($uid) |
||
859 | |||
860 | /** |
||
861 | * |
||
862 | * @return bool |
||
863 | */ |
||
864 | public function isSuspended() |
||
868 | |||
869 | /** |
||
870 | * |
||
871 | * @param bool $suspended |
||
872 | * |
||
873 | * @return Account |
||
874 | */ |
||
875 | public function setSuspended($suspended) |
||
881 | |||
882 | /** |
||
883 | * |
||
884 | * @return bool |
||
885 | */ |
||
886 | public function isBackup() |
||
890 | |||
891 | /** |
||
892 | * |
||
893 | * @param bool $backup |
||
894 | * |
||
895 | * @return Account |
||
896 | */ |
||
897 | public function setBackup($backup) |
||
903 | |||
904 | /** |
||
905 | * |
||
906 | * @return int |
||
907 | */ |
||
908 | public function getMaxPOP() |
||
912 | |||
913 | /** |
||
914 | * |
||
915 | * @param int $maxPOP |
||
916 | * |
||
917 | * @return Account |
||
918 | */ |
||
919 | public function setMaxPOP($maxPOP) |
||
925 | |||
926 | /** |
||
927 | * |
||
928 | * @return int |
||
929 | */ |
||
930 | public function getMaxSubDomain() |
||
934 | |||
935 | /** |
||
936 | * |
||
937 | * @param int $maxSubDomain |
||
938 | * |
||
939 | * @return Account |
||
940 | */ |
||
941 | public function setMaxSubDomain($maxSubDomain) |
||
947 | |||
948 | /** |
||
949 | * |
||
950 | * @return int |
||
951 | */ |
||
952 | public function getMaxEmailAccountQuota() |
||
956 | |||
957 | /** |
||
958 | * |
||
959 | * @param int $maxEmailAccountQuota |
||
960 | * |
||
961 | * @return Account |
||
962 | */ |
||
963 | public function setMaxEmailAccountQuota($maxEmailAccountQuota) |
||
969 | |||
970 | /** |
||
971 | * |
||
972 | * @return int |
||
973 | */ |
||
974 | public function getDiskUsed() |
||
978 | |||
979 | /** |
||
980 | * |
||
981 | * @param int $diskUsed |
||
982 | * |
||
983 | * @return Account |
||
984 | */ |
||
985 | public function setDiskUsed($diskUsed) |
||
991 | |||
992 | /** |
||
993 | * |
||
994 | * @return int |
||
995 | */ |
||
996 | public function getInodeUsed() |
||
1000 | |||
1001 | /** |
||
1002 | * |
||
1003 | * @param int $inodeUsed |
||
1004 | * |
||
1005 | * @return Account |
||
1006 | */ |
||
1007 | public function setInodeUsed($inodeUsed) |
||
1013 | |||
1014 | /** |
||
1015 | * |
||
1016 | * @return mixed |
||
1017 | */ |
||
1018 | public function getMinDeferFailToTriggerProtection() |
||
1022 | |||
1023 | /** |
||
1024 | * |
||
1025 | * @param mixed $minDeferFailToTriggerProtection |
||
1026 | * |
||
1027 | * @return Account |
||
1028 | */ |
||
1029 | public function setMinDeferFailToTriggerProtection($minDeferFailToTriggerProtection) |
||
1035 | |||
1036 | /** |
||
1037 | * |
||
1038 | * @return string |
||
1039 | */ |
||
1040 | public function getPlanName() |
||
1044 | |||
1045 | /** |
||
1046 | * |
||
1047 | * @param string $planName |
||
1048 | * |
||
1049 | * @return Account |
||
1050 | */ |
||
1051 | public function setPlanName($planName) |
||
1057 | |||
1058 | /** |
||
1059 | * |
||
1060 | * @return int |
||
1061 | */ |
||
1062 | public function getInodesLimit() |
||
1066 | |||
1067 | /** |
||
1068 | * |
||
1069 | * @param int $inodesLimit |
||
1070 | * |
||
1071 | * @return Account |
||
1072 | */ |
||
1073 | public function setInodesLimit($inodesLimit) |
||
1079 | |||
1080 | /** |
||
1081 | * |
||
1082 | * @return int |
||
1083 | */ |
||
1084 | public function getDiskLimit() |
||
1088 | |||
1089 | /** |
||
1090 | * |
||
1091 | * @param int $diskLimit |
||
1092 | * |
||
1093 | * @return Account |
||
1094 | */ |
||
1095 | public function setDiskLimit($diskLimit) |
||
1101 | |||
1102 | /** |
||
1103 | * |
||
1104 | * @return bool |
||
1105 | */ |
||
1106 | public function isLegacyBackup() |
||
1110 | |||
1111 | /** |
||
1112 | * |
||
1113 | * @param bool $legacyBackup |
||
1114 | * |
||
1115 | * @return Account |
||
1116 | */ |
||
1117 | public function setLegacyBackup($legacyBackup) |
||
1123 | |||
1124 | /** |
||
1125 | * @return null|string |
||
1126 | */ |
||
1127 | public function getPassword() |
||
1131 | |||
1132 | /** |
||
1133 | * @param null|string $password |
||
1134 | * @return Account |
||
1135 | */ |
||
1136 | public function setPassword($password) |
||
1141 | |||
1142 | /** |
||
1143 | * @return bool|null |
||
1144 | */ |
||
1145 | public function isCgiEnable() |
||
1149 | |||
1150 | /** |
||
1151 | * @param bool|null $cgiEnable |
||
1152 | * @return Account |
||
1153 | */ |
||
1154 | public function setCgiEnable($cgiEnable) |
||
1159 | |||
1160 | /** |
||
1161 | * @return bool |
||
1162 | */ |
||
1163 | public function isSpamAssassinEnable() |
||
1167 | |||
1168 | /** |
||
1169 | * @param bool $spamAssassinEnable |
||
1170 | * @return Account |
||
1171 | */ |
||
1172 | public function setSpamAssassinEnable($spamAssassinEnable) |
||
1177 | |||
1178 | /** |
||
1179 | * @return bool |
||
1180 | */ |
||
1181 | public function isFrontPageEnable() |
||
1185 | |||
1186 | /** |
||
1187 | * @param bool $frontPageEnable |
||
1188 | * @return Account |
||
1189 | */ |
||
1190 | public function setFrontPageEnable($frontPageEnable) |
||
1195 | |||
1196 | /** |
||
1197 | * @return int |
||
1198 | */ |
||
1199 | public function getBandwidthLimit() |
||
1203 | |||
1204 | /** |
||
1205 | * @param int $bandwidthLimit |
||
1206 | * @return Account |
||
1207 | */ |
||
1208 | public function setBandwidthLimit($bandwidthLimit) |
||
1213 | |||
1214 | /** |
||
1215 | * @return null|string |
||
1216 | */ |
||
1217 | public function getLanguagePreference() |
||
1221 | |||
1222 | /** |
||
1223 | * @param null|string $languagePreference |
||
1224 | * @return Account |
||
1225 | */ |
||
1226 | public function setLanguagePreference($languagePreference) |
||
1231 | |||
1232 | /** |
||
1233 | * |
||
1234 | * @param array $account |
||
1235 | * |
||
1236 | * @return Account |
||
1237 | */ |
||
1238 | public static function buildFromArray(array $account) |
||
1319 | |||
1320 | /** |
||
1321 | * |
||
1322 | * @return array |
||
1323 | */ |
||
1324 | public function toArray() |
||
1366 | } |
||
1367 |
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.