Changes between Version 1 and Version 2 of Convention_de_codage


Ignore:
Timestamp:
Jul 7, 2006, 10:07:48 PM (18 years ago)
Author:
Daimonos Tereutes
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Convention_de_codage

    v1 v2  
    22
    33[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]
     4Inspiré de [http://gforge.org/docman/view.php/1/2/coding-standards.html gforge]
    55
    661. Commentaires
     
    2424
    2525Tous les fichier de nainwak doivent porter la mention de copyright de l'association:
    26 [code]/**
     26{{{
     27#!php
     28/**
    2729 *
    2830 * brief description.
     
    3537 * @version  Reloaded 1.0
    3638 *
    37  */[/code]
     39 */
     40}}}
    3841
    3942Function and Class Comments:
     
    4144Similarly, every function should have a block comment specifying name, parameters, return values, and last change date.
    4245
    43 [code]/**
     46{{{
     47/**
    4448 * brief description.
    4549 * long description.  more long description.
     
    5256 * @see
    5357 *
    54  */[/code]
     58 */
     59}}}
    5560
    5661Note
     
    95100Les déclaration de fonction doivent suivre la convention unix:
    96101
    97 [code]function fooFunction($arg1, $arg2 = '') {
     102{{{
     103function fooFunction($arg1, $arg2 = '') {
    98104    if (condition)
    99105   {
     
    101107    }
    102108    return $val;
    103 }[/code]
     109}
     110}}}
    104111
    105112Les 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:
    106113
    107 [code]function connect(&$dsn, $persistent = false) {
     114{{{
     115function connect(&$dsn, $persistent = false) {
    108116    if (is_array($dsn))
    109117    {
     
    119127    }
    120128    return true;
    121 }[/code]
     129}
     130}}}
    122131
    1231326. Objects
     
    146155    * Use descriptive names for variables used globally, use short names for variables used locally.
    147156
    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}}}
    151162
    1521638. Structures de contrôle
     
    154165These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated form:
    155166
    156 [code]if ((condition1) || (condition2))
     167{{{
     168if ((condition1) || (condition2))
    157169{
    158170    action1;
     
    163175{
    164176    defaultaction;
    165 }[/code]
     177}
     178}}}
    166179
    167180Les structures de controle devraient avoir une espace entre le mot clef et la parenthèse ouvrante, afin de les distinguer des appels de fonction.
     
    171184Pour la structure switch:
    172185
    173 [code]switch (condition)
     186{{{
     187switch (condition)
    174188{
    175189    case 1:
     
    188202        break;
    189203    }
    190 }[/code]
     204}
     205}}}
    191206
    192207La notation unix est tolérée, mais déconseillée, elle me semble moins claire ex:
    193208
    194 [code]switch (condition) {
     209{{{
     210switch (condition) {
    195211    case 1: {
    196212        action1;
     
    205221        break;
    206222    }
    207 }[/code]
     223}
     224}}}
    208225
    209226
     
    212229Anywhere 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):
    213230
    214 [code]include_once('pre.php');[/code]
     231{{{
     232include_once('pre.php');
     233}}}
    215234
    21623510. Structure du code
     
    223242
    224243Par exemple:
    225 [code]SELECT * FROM BANIP[/code]
     244{{{
     245SELECT * FROM BANIP
     246}}}
    226247est différant de
    227 [code]select * from BANIP[/code]
     248{{{
     249select * from BANIP
     250}}}
    228251pour la cache de requête de mysql.
    229252
    230253Je 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]).
     254Ceci 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]).
    232255
    23325612. Une petite illustration marrante