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 |
||
17 | class Ram implements \BFWInterface\IRam |
||
18 | { |
||
19 | /** |
||
20 | * @var $_kernel L'instance du Kernel |
||
21 | */ |
||
22 | protected $_kernel; |
||
23 | |||
24 | /** |
||
25 | * @var $server_connect Permet de savoir si on est connecté au serveur. |
||
26 | */ |
||
27 | protected $server_connect = false; |
||
28 | |||
29 | /** |
||
30 | * @var $Server Le serveur |
||
31 | */ |
||
32 | protected $Server; |
||
33 | |||
34 | /** |
||
35 | * @var $debug Permet d'activer ou non le mode débug |
||
36 | */ |
||
37 | public $debug = false; |
||
38 | |||
39 | |||
40 | /** |
||
41 | * Constructeur |
||
42 | * Se connecte au serveur memcache indiqué |
||
43 | * |
||
44 | * @param string $host l'host du serveur memcache |
||
45 | * @param integer $port le port du serveur memcache |
||
46 | * |
||
47 | * @throws Exception : Si l'extension php-memcache n'est présente |
||
48 | * Si les infos sont pas au bon format |
||
49 | * Si la connexion échoue |
||
50 | */ |
||
51 | public function __construct($host, $port) |
||
77 | |||
78 | /** |
||
79 | * Permet de stocker une clé en mémoire ou de la mettre à jour |
||
80 | * |
||
81 | * @param string $key Clé correspondant à la valeur |
||
82 | * @param mixed $data Les nouvelles données. Il n'est pas possible de stocker une valeur de type resource. |
||
83 | * @param int $expire (default: 0) Le temps en seconde avant expiration. 0 illimité, max 30jours |
||
84 | * |
||
85 | * @throws \Exception Erreur dsans les paramètres donnée à la méthode |
||
86 | * |
||
87 | * @return bool |
||
88 | */ |
||
89 | public function setVal($key, $data, $expire=0) |
||
109 | |||
110 | /** |
||
111 | * On modifie le temps avant expiration des infos sur le serveur memcached pour une clé choisie. |
||
112 | * |
||
113 | * @param string $key la clé disignant les infos concerné |
||
114 | * @param int $exp le nouveau temps avant expiration (0: pas d'expiration, max 30jours) |
||
115 | * |
||
116 | * @throws \Exception Erreur dsans les paramètres donnée à la méthode |
||
117 | * |
||
118 | * @return boolean|null |
||
119 | */ |
||
120 | public function majExpire($key, $exp) |
||
143 | |||
144 | /** |
||
145 | * Permet de savoir si la clé existe |
||
146 | * |
||
147 | * @param string $key la clé disignant les infos concernées |
||
148 | * |
||
149 | * @throws \Exception Erreur dsans les paramètres donnée à la méthode |
||
150 | * |
||
151 | * @return bool |
||
152 | */ |
||
153 | View Code Duplication | public function ifExists($key) |
|
167 | |||
168 | /** |
||
169 | * Supprime une clé |
||
170 | * |
||
171 | * @param string $key la clé disignant les infos concernées |
||
172 | * |
||
173 | * @return bool |
||
174 | */ |
||
175 | View Code Duplication | public function delete($key) |
|
187 | |||
188 | /** |
||
189 | * Permet de retourner la valeur d'une clé. |
||
190 | * |
||
191 | * @param string $key Clé correspondant à la valeur |
||
192 | * |
||
193 | * @throws \Exception Erreur dsans les paramètres donnée à la méthode |
||
194 | * |
||
195 | * @return mixed La valeur demandée |
||
196 | */ |
||
197 | public function getVal($key) |
||
208 | } |
||
209 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.