Règles d'écriture de CODE
Auteur Sujet
Post 
(Transcription de http://doc.polytechnique.org/CodingRules/)

Les règles d'écritures de code sont très inspirées des règles PEAR qui sont assez raisonables

Indentation de 4 espaces, sans tabulations. (vim:set et sw=4 sts=4 ts=4)

Ceci concerne les structures if/elseif/else, for, while, switch, ...
  • Il faut utiliser les accolades, même lorsqu'elles sont optionnelles.
  • Il faut ajouter un espace entre le mot clef et les parenthèses ouvrantes qui le suivent.
  • Les tabulations doivent être proscrites


Indentation
  1. <?php 
  2. if ((condition1) || (condition2)) { 
  3.     action1; 
  4. } elseif ((condition3) && (condition4)) { 
  5.     action2; 
  6. } else { 
  7.     defaultaction; 
  8. ?> 


Structures de Contrôle
  1. <?php 
  2. switch (condition) { 
  3.     case 1: 
  4.         action1; 
  5.         break; 
  6.  
  7.     case 2: 
  8.         action2; 
  9.         break; 
  10.  
  11.     default: 
  12.         defaultaction; 
  13.         break; 
  14. ?> 


Les fonctions doivent être appelées :
  • avec aucun espace entre le nom de fonction et la parenthès ouvrante qui suit;
  • avec des espaces après chaque virgule qui séparent les paramètres;
  • sans espace entre le dernier paramètre et le dernier argument, la parenthèse, et le point virgule qui suit.
  • en cas d'assignation, il faut ajouter au moins un espace de chaque coté du signe =
  • en cas d'assignations par bloc, il est conseillé d'aligner les symboles =


Appels de fonction
  1. <?php 
  2. // Exemple 1 : assignation simple : 
  3. $var = foo($bar, $baz, $quux); 
  4.  
  5. // Exemple 2 : assignation par bloc : 
  6. $short         = foo($bar, $baz); 
  7. $long_variable = foo($bar, $quux); 
  8. ?> 


  • Il faut utiliser la convention « one true brace » (passer la première accolade à la ligne).
  • Les arguments avec des valeurs par défaut doivent être en dernier dans la liste des arguments.
  • Penser à retourner une valeur à chaque fois que cela a du sens, sinon true.

  1. <?php 
  2. function fooFunction($arg1, $arg2 = '') 
  3.     if (condition) { 
  4.         statement; 
  5.     } 
  6.     return $val; 
  7. ?> 


Déclaration de fonction
  1. <?php 
  2. function connect(&$dsn, $persistent = false) 
  3.     if (is_array($dsn)) { 
  4.         $dsninfo = &$dsn; 
  5.     } else { 
  6.         $dsninfo = DB::parseDSN($dsn); 
  7.     } 
  8.  
  9.     if (!$dsninfo || !$dsninfo['phptype']) { 
  10.         return $this->raiseError(); 
  11.     } 
  12.  
  13.     return true; 
  14. ?> 


Commentaires
  • Les commentaires par bloc /* ... */ et les commentaires lignes // ... sont OK.
  • Les commentaires de type shell/perl # ... sont à proscrire (sauf pour mettre un # TODO/XXX/FIXME).


Inclure du code
  • Ne jamais utiliser require ou include mais les fonctions require_once et include_once.
  • N'utiliser include_once que dans les cas où tout manque de fichier inclus n'est pas critique.


PHP Tags
  • Toujours utiliser les tags longs : <?php ... ?>.


Contenu des fichiers
  • Toujours inclure dans les fichiers l'entete GPL.





Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil