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 |
||
22 | class Payment extends \eoxia\Singleton_Util { |
||
23 | |||
24 | /** |
||
25 | * Les méthodes de paiement |
||
26 | * |
||
27 | * @since 2.0.0 |
||
28 | * |
||
29 | * @var array |
||
30 | */ |
||
31 | public $default_options; |
||
32 | |||
33 | /** |
||
34 | * Constructeur. |
||
35 | * |
||
36 | * @since 2.0.0 |
||
37 | */ |
||
38 | protected function construct() { |
||
69 | |||
70 | /** |
||
71 | * Récupères les données d'un méthode de paiement selon $slug. |
||
72 | * |
||
73 | * @since 2.0.0 |
||
74 | * |
||
75 | * @param string $slug Le slug de la méthode de paiement. |
||
76 | * |
||
77 | * @return array Les données de la méthode de paiement. |
||
78 | */ |
||
79 | View Code Duplication | public function get_payment_option( $slug = '' ) { |
|
88 | |||
89 | /** |
||
90 | * Récupères les données d'un méthode de paiement selon $slug. |
||
91 | * |
||
92 | * @todo Voir ou c'est appelé |
||
93 | * |
||
94 | * @since 2.0.0 |
||
95 | * |
||
96 | * @param string $slug Le slug de la méthode de paiement. |
||
97 | * |
||
98 | * @return array Le titre de la méthode de paiement. |
||
99 | */ |
||
100 | View Code Duplication | public function get_payment_title( $slug ) { |
|
110 | |||
111 | /** |
||
112 | * Convertis le status vers un message lisible. |
||
113 | * |
||
114 | * @todo: A voir, a traduire. |
||
115 | * |
||
116 | * @param array $object Un tableau contenant un type et la méta billed |
||
117 | * ainsi que la méta payment_method. |
||
118 | * |
||
119 | * @return string Le message |
||
120 | */ |
||
121 | public function convert_status( $object ) { |
||
171 | } |
||
172 | |||
174 |
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.