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 |
||
21 | class User_Class extends Singleton_Util { |
||
22 | /** |
||
23 | * Le nom du modèle |
||
24 | * |
||
25 | * @var string |
||
26 | */ |
||
27 | protected $model_name = 'user_model'; |
||
28 | |||
29 | /** |
||
30 | * La clé principale pour post_meta |
||
31 | * |
||
32 | * @var string |
||
33 | */ |
||
34 | protected $meta_key = '_wpeo_user'; |
||
35 | |||
36 | /** |
||
37 | * Utiles pour récupérer la clé unique |
||
38 | * |
||
39 | * @todo Rien à faire ici |
||
40 | * @var string |
||
41 | */ |
||
42 | protected $identifier_helper = 'user'; |
||
43 | |||
44 | /** |
||
45 | * Utiles pour DigiRisk |
||
46 | * |
||
47 | * @todo Rien à faire ici |
||
48 | * @var string |
||
49 | */ |
||
50 | public $element_prefix = 'U'; |
||
51 | |||
52 | /** |
||
53 | * Fonction de callback après avoir récupérer les données dans la base de donnée en mode GET. |
||
54 | * |
||
55 | * @var array |
||
56 | */ |
||
57 | protected $after_get_function = array( 'build_user_initial' ); |
||
58 | |||
59 | /** |
||
60 | * Fonction de callback avant d'insérer les données en mode POST. |
||
61 | * |
||
62 | * @var array |
||
63 | */ |
||
64 | protected $before_post_function = array(); |
||
65 | |||
66 | /** |
||
67 | * Fonction de callback avant de dispatcher les données en mode POST. |
||
68 | * |
||
69 | * @var array |
||
70 | */ |
||
71 | protected $before_model_post_function = array(); |
||
72 | |||
73 | /** |
||
74 | * Fonction de callback après avoir inséré les données en mode POST. |
||
75 | * |
||
76 | * @var array |
||
77 | */ |
||
78 | protected $after_post_function = array(); |
||
79 | |||
80 | /** |
||
81 | * Fonction de callback avant de mêttre à jour les données en mode PUT. |
||
82 | * |
||
83 | * @var array |
||
84 | */ |
||
85 | protected $before_put_function = array(); |
||
86 | |||
87 | /** |
||
88 | * Fonction de callback avant de dispatcher les données en mode PUT. |
||
89 | * |
||
90 | * @var array |
||
91 | */ |
||
92 | protected $before_model_put_function = array(); |
||
93 | |||
94 | /** |
||
95 | * Fonction de callback après avoir mis à jour les données en mode PUT. |
||
96 | * |
||
97 | * @var array |
||
98 | */ |
||
99 | protected $after_put_function = array(); |
||
100 | |||
101 | /** |
||
102 | * Le constructeur pour Singleton_Util |
||
103 | * |
||
104 | * @since 1.0.0.0 |
||
105 | * @version 1.3.0.0 |
||
106 | * |
||
107 | * @return void |
||
108 | */ |
||
109 | protected function construct() {} |
||
110 | |||
111 | /** |
||
112 | * Permet de récupérer le schéma avec les données du modèle par défault. |
||
113 | * |
||
114 | * @since 1.0.0.0 |
||
115 | * @version 1.3.0.0 |
||
116 | * |
||
117 | * @return Object |
||
118 | */ |
||
119 | public function get_schema() { |
||
124 | |||
125 | /** |
||
126 | * Récupères les données selon le modèle définis. |
||
127 | * |
||
128 | * @since 1.0.0.0 |
||
129 | * @version 1.3.0.0 |
||
130 | * |
||
131 | * @param array $args Les paramètres de get_users @https://codex.wordpress.org/Function_Reference/get_users. |
||
132 | * @param boolean $single Si on veut récupérer un tableau, ou qu'une seule entrée. |
||
133 | * |
||
134 | * @return Comment_Model |
||
135 | */ |
||
136 | public function get( $args = array(), $single = false ) { |
||
185 | |||
186 | /** |
||
187 | * Appelle la méthode update. |
||
188 | * |
||
189 | * @since 1.0.0.0 |
||
190 | * @version 1.3.0.0 |
||
191 | * |
||
192 | * @param Array $data Les données. |
||
193 | * @return Array $data Les données |
||
194 | */ |
||
195 | public function create( $data ) { |
||
198 | |||
199 | /** |
||
200 | * Insère ou met à jour les données dans la base de donnée. |
||
201 | * |
||
202 | * @since 1.0.0.0 |
||
203 | * @version 1.3.0.0 |
||
204 | * |
||
205 | * @param Array $data Les données a insérer ou à mêttre à jour. |
||
206 | * @return Object L'objet construit grâce au modèle. |
||
207 | */ |
||
208 | public function update( $data ) { |
||
247 | |||
248 | /** |
||
249 | * Supprimes un utilisateur |
||
250 | * |
||
251 | * @todo: Utile ? |
||
252 | * |
||
253 | * @since 1.0.0.0 |
||
254 | * @version 1.3.0.0 |
||
255 | * |
||
256 | * @param integer $id L'ID de l'utilisateur. |
||
257 | */ |
||
258 | public function delete( $id ) { |
||
261 | |||
262 | /** |
||
263 | * Utile uniquement pour DigiRisk. |
||
264 | * |
||
265 | * @since 1.0.0.0 |
||
266 | * @version 1.3.0.0 |
||
267 | * |
||
268 | * @return string L'identifiant des commentaires pour DigiRisk. |
||
269 | */ |
||
270 | public function get_identifier_helper() { |
||
273 | } |
||
274 | } |
||
275 |
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.