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 |
||
10 | class ControllerBase extends Controller |
||
|
|||
11 | { |
||
12 | |||
13 | protected $model; |
||
14 | protected $title; |
||
15 | protected $controller; |
||
16 | protected $messageTimerInterval = 3000; |
||
17 | |||
18 | public function afterExecuteRoute($dispatcher) |
||
28 | |||
29 | public function indexAction($message = NULL) |
||
48 | |||
49 | public function getInstance($id = NULL) |
||
59 | |||
60 | public function readAction($id = NULL) |
||
68 | |||
69 | |||
70 | protected function setValuesToObject(&$object) |
||
74 | |||
75 | |||
76 | public function updateAction() |
||
100 | |||
101 | //PErmet l'édition d'un seul champ à la fois |
||
102 | View Code Duplication | public function soloUpdateAction() |
|
112 | |||
113 | |||
114 | View Code Duplication | public function deleteAction($id = null) |
|
122 | |||
123 | public function asAdminAction() |
||
129 | |||
130 | public function asUserAction() |
||
136 | |||
137 | public function logoutAction() |
||
142 | |||
143 | public function loadAclAction($typeUser) { |
||
173 | |||
174 | public function verifyAccessAction($activeResource, $activeOperation) { |
||
189 | |||
190 | /** |
||
191 | * Affiche un message Alert bootstrap |
||
192 | * @param DisplayedMessage $message |
||
193 | */ |
||
194 | public function _showDisplayedMessage($message) |
||
198 | |||
199 | /** |
||
200 | * Affiche un message Alert bootstrap |
||
201 | * @param string $message texte du message |
||
202 | * @param string $type type du message (info, success, warning ou danger) |
||
203 | * @param number $timerInterval durée en millisecondes d'affichage du message (0 pour que le message reste affiché) |
||
204 | * @param string $dismissable si vrai, l'alert dispose d'une croix de fermeture |
||
205 | */ |
||
206 | public function _showMessage($message, $type = "success", $timerInterval = 0, $dismissable = true, $visible = true) |
||
211 | |||
212 | |||
213 | public function messageSuccess($message, $timerInterval = 0, $dismissable = true) |
||
217 | |||
218 | /** |
||
219 | * Affiche un message Alert bootstrap de type warning |
||
220 | * @param string $message texte du message |
||
221 | * @param number $timerInterval durée en millisecondes d'affichage du message (0 pour que le message reste affiché) |
||
222 | * @param string $dismissable si vrai, l'alert dispose d'une croix de fermeture |
||
223 | */ |
||
224 | public function messageWarning($message, $timerInterval = 0, $dismissable = true) |
||
228 | |||
229 | /** |
||
230 | * Affiche un message Alert bootstrap de type danger |
||
231 | * @param string $message texte du message |
||
232 | * @param number $timerInterval durée en millisecondes d'affichage du message (0 pour que le message reste affiché) |
||
233 | * @param string $dismissable si vrai, l'alert dispose d'une croix de fermeture |
||
234 | */ |
||
235 | public function messageDanger($message, $timerInterval = 0, $dismissable = true) |
||
239 | |||
240 | /** |
||
241 | * Affiche un message Alert bootstrap de type info |
||
242 | * @param string $message texte du message |
||
243 | * @param number $timerInterval durée en millisecondes d'affichage du message (0 pour que le message reste affiché) |
||
244 | * @param string $dismissable si vrai, l'alert dispose d'une croix de fermeture |
||
245 | */ |
||
246 | public function messageInfo($message, $timerInterval = 0, $dismissable = true) |
||
250 | |||
251 | } |
||
252 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.