Changes between Version 1 and Version 2 of Convention_de_codage
- Timestamp:
- Jul 7, 2006, 10:07:48 PM (19 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Convention_de_codage
v1 v2 2 2 3 3 [color=green]Ceci est un premier jet, et une traduction incomplète, les suggestions sont bienvenues[/color] 4 Inspiré de [ url=http://gforge.org/docman/view.php/1/2/coding-standards.html]gforge[/url]4 Inspiré de [http://gforge.org/docman/view.php/1/2/coding-standards.html gforge] 5 5 6 6 1. Commentaires … … 24 24 25 25 Tous les fichier de nainwak doivent porter la mention de copyright de l'association: 26 [code]/** 26 {{{ 27 #!php 28 /** 27 29 * 28 30 * brief description. … … 35 37 * @version Reloaded 1.0 36 38 * 37 */[/code] 39 */ 40 }}} 38 41 39 42 Function and Class Comments: … … 41 44 Similarly, every function should have a block comment specifying name, parameters, return values, and last change date. 42 45 43 [code]/** 46 {{{ 47 /** 44 48 * brief description. 45 49 * long description. more long description. … … 52 56 * @see 53 57 * 54 */[/code] 58 */ 59 }}} 55 60 56 61 Note … … 95 100 Les déclaration de fonction doivent suivre la convention unix: 96 101 97 [code]function fooFunction($arg1, $arg2 = '') { 102 {{{ 103 function fooFunction($arg1, $arg2 = '') { 98 104 if (condition) 99 105 { … … 101 107 } 102 108 return $val; 103 }[/code] 109 } 110 }}} 104 111 105 112 Les Arguments avec de valeurs par défaut vont à la fin de la liste d'arguments. Lorsque c'est approprié, les fonctions doivent toujours renvoyer une valeur significative. Un example un peu plus long: 106 113 107 [code]function connect(&$dsn, $persistent = false) { 114 {{{ 115 function connect(&$dsn, $persistent = false) { 108 116 if (is_array($dsn)) 109 117 { … … 119 127 } 120 128 return true; 121 }[/code] 129 } 130 }}} 122 131 123 132 6. Objects … … 146 155 * Use descriptive names for variables used globally, use short names for variables used locally. 147 156 148 [code] $AddressInfo = array(...); 149 150 for($i=0; $i < count($list); $i++)[/code] 157 {{{ 158 $AddressInfo = array(...); 159 160 for($i=0; $i < count($list); $i++) 161 }}} 151 162 152 163 8. Structures de contrôle … … 154 165 These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated form: 155 166 156 [code]if ((condition1) || (condition2)) 167 {{{ 168 if ((condition1) || (condition2)) 157 169 { 158 170 action1; … … 163 175 { 164 176 defaultaction; 165 }[/code] 177 } 178 }}} 166 179 167 180 Les structures de controle devraient avoir une espace entre le mot clef et la parenthèse ouvrante, afin de les distinguer des appels de fonction. … … 171 184 Pour la structure switch: 172 185 173 [code]switch (condition) 186 {{{ 187 switch (condition) 174 188 { 175 189 case 1: … … 188 202 break; 189 203 } 190 }[/code] 204 } 205 }}} 191 206 192 207 La notation unix est tolérée, mais déconseillée, elle me semble moins claire ex: 193 208 194 [code]switch (condition) { 209 {{{ 210 switch (condition) { 195 211 case 1: { 196 212 action1; … … 205 221 break; 206 222 } 207 }[/code] 223 } 224 }}} 208 225 209 226 … … 212 229 Anywhere you are unconditionally including a class file, use require_once. Anywhere you are conditionally including a class file (for example, factory methods), use include_once. Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once will not be included again by include_once. Note: include_once and require_once are keywords, not functions. Les parenthèses autour du nom de fichier à inclure sont facultatives, ceci dit il est fortement recommandé de les mettre. De plus, utilisez des ' (apostrophes) et non pas des " (guillemets): 213 230 214 [code]include_once('pre.php');[/code] 231 {{{ 232 include_once('pre.php'); 233 }}} 215 234 216 235 10. Structure du code … … 223 242 224 243 Par exemple: 225 [code]SELECT * FROM BANIP[/code] 244 {{{ 245 SELECT * FROM BANIP 246 }}} 226 247 est différant de 227 [code]select * from BANIP[/code] 248 {{{ 249 select * from BANIP 250 }}} 228 251 pour la cache de requête de mysql. 229 252 230 253 Je recommande donc d'utiliser systématiquement la casse telle que proposée par phpMyAdmin, c'est à dire avec les mots clefs en majuscules, après avoir supprimé les éventuel retours à la ligne. 231 Ceci afin d'avoir une casse consistante. De plus c'est un bon moyen de vérifier au passage que cette requête est a peu près optimisée (cf [ url=http://dev.mysql.com/doc/refman/4.1/en/explain.html]EXPLAIN[/url]).254 Ceci afin d'avoir une casse consistante. De plus c'est un bon moyen de vérifier au passage que cette requête est a peu près optimisée (cf [http://dev.mysql.com/doc/refman/4.1/en/explain.html EXPLAIN]). 232 255 233 256 12. Une petite illustration marrante