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.