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 |
||
| 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($colorHexa, $incrementRouge, $incrementVert, $incrementBleu, $plancherRouge = 0, $plafondRouge = 255, $plancherVert = 0, $plafondVert = 255, $plancherBleu = 0, $plafondBleu = 255) |
||
| 45 | |||
| 46 | /************************************************************** |
||
| 47 | * Eclairci une couleur |
||
| 48 | * elle borné pa un plancher et un plafond pur évite le tout blanc ou tout blanc |
||
| 49 | * ou les blocage sur une couleur pur (ex #FF0000) |
||
| 50 | ************************************************************** |
||
| 51 | * @param $colorHexa |
||
| 52 | * @param int $plancher |
||
| 53 | * @param int $plafond |
||
| 54 | * @return string |
||
| 55 | */ |
||
| 56 | public static function eclaircir($colorHexa, $plancher = 0, $plafond = 255) |
||
| 98 | |||
| 99 | /************************************************************** |
||
| 100 | * Fonce une couleur |
||
| 101 | * elle borné pa un plancher et un plafond pur évite le tout blanc ou tout blanc |
||
| 102 | * ou les blocage sur une couleur pur (ex #FFFF00) |
||
| 103 | ************************************************************** |
||
| 104 | * @param $colorHexa |
||
| 105 | * @param int $plancher |
||
| 106 | * @param int $plafond |
||
| 107 | * @return string |
||
| 108 | */ |
||
| 109 | public function foncer($colorHexa, $plancher = 0, $plafond = 255) |
||
| 145 | |||
| 146 | /************************************************************** |
||
| 147 | * Renvoi une couleur RGB en hexa a partir du tableau passe en parametr |
||
| 148 | * Description du tableau |
||
| 149 | * 0 = doit contenir '#' ou '' |
||
| 150 | * 1 = int red |
||
| 151 | * 2 = int vert |
||
| 152 | * 3 = int bleu |
||
| 153 | ************************************************************** |
||
| 154 | * @param $aColors |
||
| 155 | * @return string |
||
| 156 | */ |
||
| 157 | public static function getHexaColorFromA($aColors) |
||
| 170 | |||
| 171 | /************************************************************** |
||
| 172 | * Transforme les composante d'une couleur en valeu hexa |
||
| 173 | * prefixe doit contenir '#' ou '' |
||
| 174 | ************************************************************** |
||
| 175 | * @param $r |
||
| 176 | * @param $g |
||
| 177 | * @param $b |
||
| 178 | * @param string $prefixe |
||
| 179 | * @return string |
||
| 180 | */ |
||
| 181 | public function rgb2hexa($r, $g, $b, $prefixe = '') |
||
| 187 | |||
| 188 | /************************************************************** |
||
| 189 | * renvoi un tableau d'entier des valeur rgbd d'une couleur a partir d'un hexa |
||
| 190 | * Description du tableau renvoyé |
||
| 191 | * 0 = contient '#' ou '' (selon premier cactere de la couleur hexa) |
||
| 192 | * 1 = int red |
||
| 193 | * 2 = int vert |
||
| 194 | * 3 = int bleu |
||
| 195 | ************************************************************** |
||
| 196 | * @param $colorHexa |
||
| 197 | * @return array |
||
| 198 | */ |
||
| 199 | public static function hexa2rgbA($colorHexa) |
||
| 217 | |||
| 218 | /************************************************************** |
||
| 219 | * Renvoi les composante rgb d'une couleur par référence |
||
| 220 | ************************************************************** |
||
| 221 | * @param $colorHexa |
||
| 222 | * @param $r |
||
| 223 | * @param $v |
||
| 224 | * @param $b |
||
| 225 | * @param $diese |
||
| 226 | * @return bool |
||
| 227 | */ |
||
| 228 | public function hexa2rgb($colorHexa, &$r, &$v, &$b, &$diese) |
||
| 238 | |||
| 239 | /************************************************************** |
||
| 240 | * Borne les valeurs max et min d'une valeur |
||
| 241 | ************************************************************** |
||
| 242 | * @param $val |
||
| 243 | * @param $min |
||
| 244 | * @param $max |
||
| 245 | * @return mixed |
||
| 246 | */ |
||
| 247 | public static function bornerValeur($val, $min, $max) |
||
| 257 | |||
| 258 | //-------------------------------------------------------- |
||
| 259 | } // --- fin de la classe colors |
||
| 260 | //-------------------------------------------------------- |
||
| 261 |
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.