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 namespace XoopsModules\Extcal; |
||
| 6 | class ColorTools |
||
| 7 | { |
||
| 8 | /** |
||
| 9 | * |
||
| 10 | */ |
||
| 11 | public function __construct() |
||
| 14 | |||
| 15 | /************************************************************** |
||
| 16 | * Ajoute ou rtir un icrement sur chaque compsante RGB d'une couleur |
||
| 17 | * Les valeur sont limiter au bornes inférieure et supérieure 0 et 255 |
||
| 18 | ************************************************************** |
||
| 19 | * |
||
| 20 | * @param $colorHexa |
||
| 21 | * @param $incrementRouge |
||
| 22 | * @param $incrementVert |
||
| 23 | * @param $incrementBleu |
||
| 24 | * @param int $plancherRouge |
||
| 25 | * @param int $plafondRouge |
||
| 26 | * @param int $plancherVert |
||
| 27 | * @param int $plafondVert |
||
| 28 | * @param int $plancherBleu |
||
| 29 | * @param int $plafondBleu |
||
| 30 | * |
||
| 31 | * @return string |
||
| 32 | */ |
||
| 33 | public function modifierCouleur( |
||
| 55 | |||
| 56 | /************************************************************** |
||
| 57 | * Eclairci une couleur |
||
| 58 | * elle borné pa un plancher et un plafond pur évite le tout blanc ou tout blanc |
||
| 59 | * ou les blocage sur une couleur pur (ex #FF0000) |
||
| 60 | ************************************************************** |
||
| 61 | * @param $colorHexa |
||
| 62 | * @param int $plancher |
||
| 63 | * @param int $plafond |
||
| 64 | * @return string |
||
| 65 | */ |
||
| 66 | public static function eclaircir($colorHexa, $plancher = 0, $plafond = 255) |
||
| 109 | |||
| 110 | /************************************************************** |
||
| 111 | * Fonce une couleur |
||
| 112 | * elle borné pa un plancher et un plafond pur évite le tout blanc ou tout blanc |
||
| 113 | * ou les blocage sur une couleur pur (ex #FFFF00) |
||
| 114 | ************************************************************** |
||
| 115 | * @param $colorHexa |
||
| 116 | * @param int $plancher |
||
| 117 | * @param int $plafond |
||
| 118 | * @return string |
||
| 119 | */ |
||
| 120 | public function foncer($colorHexa, $plancher = 0, $plafond = 255) |
||
| 156 | |||
| 157 | /************************************************************** |
||
| 158 | * Renvoi une couleur RGB en hexa a partir du tableau passe en parametr |
||
| 159 | * Description du tableau |
||
| 160 | * 0 = doit contenir '#' ou '' |
||
| 161 | * 1 = int red |
||
| 162 | * 2 = int vert |
||
| 163 | * 3 = int bleu |
||
| 164 | ************************************************************** |
||
| 165 | * @param $aColors |
||
| 166 | * @return string |
||
| 167 | */ |
||
| 168 | public static function getHexaColorFromA($aColors) |
||
| 181 | |||
| 182 | /************************************************************** |
||
| 183 | * Transforme les composante d'une couleur en valeu hexa |
||
| 184 | * prefixe doit contenir '#' ou '' |
||
| 185 | ************************************************************** |
||
| 186 | * @param $r |
||
| 187 | * @param $g |
||
| 188 | * @param $b |
||
| 189 | * @param string $prefixe |
||
| 190 | * @return string |
||
| 191 | */ |
||
| 192 | public function rgb2hexa($r, $g, $b, $prefixe = '') |
||
| 198 | |||
| 199 | /************************************************************** |
||
| 200 | * renvoi un tableau d'entier des valeur rgbd d'une couleur a partir d'un hexa |
||
| 201 | * Description du tableau renvoyé |
||
| 202 | * 0 = contient '#' ou '' (selon premier cactere de la couleur hexa) |
||
| 203 | * 1 = int red |
||
| 204 | * 2 = int vert |
||
| 205 | * 3 = int bleu |
||
| 206 | ************************************************************** |
||
| 207 | * @param $colorHexa |
||
| 208 | * @return array |
||
| 209 | */ |
||
| 210 | public static function hexa2rgbA($colorHexa) |
||
| 228 | |||
| 229 | /************************************************************** |
||
| 230 | * Renvoi les composante rgb d'une couleur par référence |
||
| 231 | ************************************************************** |
||
| 232 | * @param $colorHexa |
||
| 233 | * @param $r |
||
| 234 | * @param $v |
||
| 235 | * @param $b |
||
| 236 | * @param $diese |
||
| 237 | * @return bool |
||
| 238 | */ |
||
| 239 | public function hexa2rgb($colorHexa, &$r, &$v, &$b, &$diese) |
||
| 249 | |||
| 250 | /************************************************************** |
||
| 251 | * Borne les valeurs max et min d'une valeur |
||
| 252 | ************************************************************** |
||
| 253 | * @param $val |
||
| 254 | * @param $min |
||
| 255 | * @param $max |
||
| 256 | * @return mixed |
||
| 257 | */ |
||
| 258 | public static function bornerValeur($val, $min, $max) |
||
| 268 | |||
| 269 | //-------------------------------------------------------- |
||
| 270 | } // --- fin de la classe colors |
||
| 271 | //-------------------------------------------------------- |
||
| 272 |
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVarassignment in line 1 and the$higherassignment in line 2 are dead. The first because$myVaris never used and the second because$higheris always overwritten for every possible time line.