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 |
||
| 28 | class AdminXoopsCode extends AdminObjects |
||
| 29 | { |
||
| 30 | /* |
||
| 31 | * @public function constructor |
||
| 32 | * @param null |
||
| 33 | */ |
||
| 34 | /** |
||
| 35 | * |
||
| 36 | */ |
||
| 37 | public function __construct() |
||
| 42 | |||
| 43 | /* |
||
| 44 | * @static function &getInstance |
||
| 45 | * @param null |
||
| 46 | */ |
||
| 47 | /** |
||
| 48 | * @return AdminXoopsCode |
||
| 49 | */ |
||
| 50 | public static function &getInstance() |
||
| 59 | |||
| 60 | /* |
||
| 61 | * @public function getAdminTemplateMain |
||
| 62 | * @param $moduleDirname |
||
| 63 | * @param $tableName |
||
| 64 | * @return string |
||
| 65 | */ |
||
| 66 | public function getAdminTemplateMain($moduleDirname, $tableName) |
||
| 70 | |||
| 71 | /* |
||
| 72 | * @public function getAdminTemplateMain |
||
| 73 | * @param $moduleDirname |
||
| 74 | * @param $tableName |
||
| 75 | * @param $admin |
||
| 76 | * @return string |
||
| 77 | */ |
||
| 78 | public function getAdminItemButton($moduleDirname, $tableName, $admin = false) |
||
| 89 | |||
| 90 | /** |
||
| 91 | * @public function getAdminAddNavigation |
||
| 92 | * |
||
| 93 | * @param $tableName |
||
| 94 | * |
||
| 95 | * @return string |
||
| 96 | */ |
||
| 97 | public function getAdminAddNavigation($tableName) |
||
| 105 | |||
| 106 | /** |
||
| 107 | * @public function getAdminObjHandlerCreate |
||
| 108 | * |
||
| 109 | * @param string $tableName |
||
| 110 | * |
||
| 111 | * @return string |
||
| 112 | */ |
||
| 113 | public function getAdminObjHandlerCreate($tableName) |
||
| 121 | |||
| 122 | /* |
||
| 123 | * @public function getXoopsCodeAddInfoBox |
||
| 124 | * @param $language |
||
| 125 | * |
||
| 126 | * @return string |
||
| 127 | */ |
||
| 128 | public function getXoopsCodeAddInfoBox($language) |
||
| 132 | |||
| 133 | /* |
||
| 134 | * @public function getXoopsCodeAddInfoBoxLine |
||
| 135 | * @param $language |
||
| 136 | * @param $label |
||
| 137 | * @param $var |
||
| 138 | * |
||
| 139 | * @return string |
||
| 140 | */ |
||
| 141 | View Code Duplication | public function getXoopsCodeAddInfoBoxLine($language, $label = '', $var = '') |
|
| 151 | |||
| 152 | /* |
||
| 153 | * @public function getXoopsCodeAddConfigBoxLine |
||
| 154 | * @param $language |
||
| 155 | * @param $label |
||
| 156 | * @param $var |
||
| 157 | * |
||
| 158 | * @return string |
||
| 159 | */ |
||
| 160 | View Code Duplication | public function getXoopsCodeAddConfigBoxLine($language, $label = '', $var = '') |
|
| 170 | |||
| 171 | /* |
||
| 172 | * @public function getXoopsCodeItemButton |
||
| 173 | * @param $language |
||
| 174 | * @param $tableName |
||
| 175 | * @param $admin |
||
| 176 | * @return string |
||
| 177 | */ |
||
| 178 | public function getXoopsCodeItemButton($language, $tableName, $tableSoleName, $op = '?op=new', $type = 'add') |
||
| 194 | |||
| 195 | /* |
||
| 196 | * @public function getXoopsCodeGetConfig |
||
| 197 | * @param $var |
||
| 198 | * @param $dirPath |
||
| 199 | * @param $tableName |
||
| 200 | * @param $moduleDirname |
||
| 201 | * @return string |
||
| 202 | */ |
||
| 203 | public function getXoopsCodeMediaUploader($var = '', $dirPath, $tableName, $moduleDirname) |
||
| 209 | |||
| 210 | /* |
||
| 211 | * @public function getXoopsCodeImageListSetVar |
||
| 212 | * @param string $moduleDirname |
||
| 213 | * @param string $tableName |
||
| 214 | * @param string $fieldName |
||
| 215 | * @return string |
||
| 216 | */ |
||
| 217 | public function getXoopsCodeImageListSetVar($moduleDirname, $tableName, $fieldName) |
||
| 235 | |||
| 236 | /* |
||
| 237 | * @public function getXoopsCodeUploadImageSetVar |
||
| 238 | * @param string $moduleDirname |
||
| 239 | * @param string $tableName |
||
| 240 | * @param string $fieldName |
||
| 241 | * @return string |
||
| 242 | */ |
||
| 243 | public function getXoopsCodeUploadImageSetVar($moduleDirname, $tableName, $fieldName, $fieldMain) |
||
| 265 | |||
| 266 | /* |
||
| 267 | * @public function getXoopsCodeFileSetVar |
||
| 268 | * @param $moduleDirname |
||
| 269 | * @param $tableName |
||
| 270 | * @param $fieldName |
||
| 271 | * @param $formatUrl |
||
| 272 | * @return string |
||
| 273 | */ |
||
| 274 | public function getXoopsCodeFileSetVar($moduleDirname, $tableName, $fieldName, $formatUrl = false) |
||
| 301 | |||
| 302 | /** |
||
| 303 | * @public function getAdminXoopsCodeSetVarsObjects |
||
| 304 | * |
||
| 305 | * @param $moduleDirname |
||
| 306 | * @param $tableName |
||
| 307 | * @param $fields |
||
| 308 | * |
||
| 309 | * @return string |
||
| 310 | */ |
||
| 311 | public function getAdminXoopsCodeSetVarsObjects($moduleDirname, $tableName, $fields) |
||
| 350 | |||
| 351 | /** |
||
| 352 | * @public function getAdminXoopsCodeXoopsSecurity |
||
| 353 | * |
||
| 354 | * @param $tableName |
||
| 355 | * |
||
| 356 | * @return string |
||
| 357 | */ |
||
| 358 | public function getAdminXoopsCodeXoopsSecurity($tableName) |
||
| 368 | |||
| 369 | /* |
||
| 370 | * @public function getAdminXoopsCodeInsertData |
||
| 371 | * @param $tableName |
||
| 372 | * @param $language |
||
| 373 | * @return string |
||
| 374 | */ |
||
| 375 | public function getAdminXoopsCodeInsertData($tableName, $language) |
||
| 386 | |||
| 387 | /** |
||
| 388 | * @public function getAdminXoopsCodeGetFormError |
||
| 389 | * |
||
| 390 | * @param $tableName |
||
| 391 | * |
||
| 392 | * @return string |
||
| 393 | */ |
||
| 394 | public function getAdminXoopsCodeGetFormError($tableName) |
||
| 405 | |||
| 406 | /** |
||
| 407 | * @public function getAdminXoopsCodeGetFormId |
||
| 408 | * |
||
| 409 | * @param string $tableName |
||
| 410 | * @param string $fieldId |
||
| 411 | * |
||
| 412 | * @return string |
||
| 413 | */ |
||
| 414 | public function getAdminXoopsCodeGetFormId($tableName, $fieldId) |
||
| 425 | |||
| 426 | /** |
||
| 427 | * @public function getAdminXoopsCodeGetObjHandlerId |
||
| 428 | * |
||
| 429 | * @param string $tableName |
||
| 430 | * @param string $fieldId |
||
| 431 | * |
||
| 432 | * @return string |
||
| 433 | */ |
||
| 434 | public function getAdminXoopsCodeGetObjHandlerId($tableName, $fieldId) |
||
| 442 | |||
| 443 | /* |
||
| 444 | * @public function getAdminXoopsCodeDelete |
||
| 445 | * @param string $tableName |
||
| 446 | * @param string $language |
||
| 447 | * @param string $fieldId |
||
| 448 | * @param string $fieldMain |
||
| 449 | * @return string |
||
| 450 | */ |
||
| 451 | View Code Duplication | public function getAdminXoopsCodeDelete($tableName, $language, $fieldId, $fieldMain) |
|
| 473 | |||
| 474 | /* |
||
| 475 | * @public function getAdminXoopsCodeUpdate |
||
| 476 | * @param string $moduleDirname |
||
| 477 | * @param string $tableName |
||
| 478 | * @param string $language |
||
| 479 | * @param string $fieldId |
||
| 480 | * @param string $fieldMain |
||
| 481 | * @return string |
||
| 482 | */ |
||
| 483 | View Code Duplication | public function getAdminXoopsCodeUpdate($moduleDirname, $tableName, $language, $fieldId, $fieldMain) |
|
| 502 | } |
||
| 503 |
The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.
The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.
To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.