Savoir d'ou vient votre variable

Personnellement, j'essaie d'utiliser la convention suivante afin de savoir d'où proviennent mes variables :

  • $G_variable : variable passée en $_GET['variable']
  • $P_variable : variable passée en $_POST['variable']
  • $S_variable : variable passée en $_SESSION['variable']
  • $L_variable : variable provenant d'un fichier de langue
  • VARIABLE : il s'agit d'une constante (les mots sont séparés par des '_')

Connaitre le type des variables

Certains développeurs (dont je ne fais pas parti) font précéder le nom de la variable par le type ( ou un abregé du type ). En effet, PHP étant un langage non typé, une variable $nombre peut etre de type "int", "float", "chaine de caractère" ou autre. Donc en faisant préceder le nom de la variable par le type, on aura plus d'information ($arrayNotes => permet de savoir que l'on va avoir affaire à un tableau de notes)

  • int : pour les entiers
  • float : pour les réels
  • array : pour les tableaux
  • str : pour les chaines de caractères

Nommage de vos fichiers

Pour chaque classe que je crée, j'utilise la notation "Nom_de_la_classe.class.php" en essayant d'avoir un nom explicite comme nom de classe et en mettant la première lettre de la classe en majuscule.

Lorsque j'utilise des classes d'abstraction de la base de données, je crée deux fichiers (et donc deux classes) pour chaque table de la base :

  • Nom_de_la_table.class.php : classe qui contient simplement la liste des champs de la table avec les méthodes set et get pour chaque champ. Cette classe servira à manipuler les données qui seront utilisées par MySQL.
  • NomSQL.class.php : classe qui contient les méthodes pour accéder à la base de données en utilisant la première classe pour manipuler les données.
    Exemple : méthode de chargement suivant un id, suppression suivant un id...etc

Indentation

Pour une meilleure lecture de mon code source, j'utilise l'identation suivante :

  • ouverture des blocs sur la ligne du dessous (beaucoup de personnes utilisent l'ouverture sur la même ligne, perso je trouve l'ouverture sur la ligne du dessous plus clair)
  • if ( condition )
    {
          ...
    }
    
  • l'indentation utilise les tabulations (et non les espaces)
  • ouverures des blocs obligatoire
  • if ( condition )
    {
          traitement();
    }
    et non
    if ( condition ) traitement();

Il est conseillé de ne pas dépasser 80 caractères dans les lignes.

Commentaires

Chaque classe, méthode, fonction ou variable doit être commenté.

Les classes peuvent être commentées à l'aide d'une description courte, d'une description longue, en indiquant les auteurs de la classe (@author), le copyright (@copyright), la license utilisée (@license) et la version de PHP (il est possible de rajouter d'autres informations).

(inspiré de la convention de PEAR au niveau des entêtes de fichier)

<?php
    /**
     * Courte description de la classe
     *
     * Description plus détaillée de la classe
     * 
     * PHP versions 4 et 5
     *
     * LICENSE blabla
     *
     * @author Auteur de la classe
     * @copyright 2006 Luc
     * @license http://www.freebsd.org/copyright/freebsd-license.html  BSD License (2 Clause)
     */
     class UneClasse
     {
         ...
     }
?>

Les variables membres de chaque classe peuvent être commentées à l'aide d'une description (@desc), d'un type (@type) et d'un commentaire (@comment).

Exemple :

<?php
    class Personne
    {
        /**
         * Nom de la personne
         * @comment Par défaut le nom de la personne est vide
         **/
         private $nom = '';
    }
?>

Les fonctions et méthodes peuvent être commentées grâce à une description (@desc), aux paramètres passés (@param), au renvoi (@return) et par un commentaire (@comment).

/**
 * @return boolean    renvoie true si $this->nombre est plus grand que $pNombre;  / renvoie false dans le cas contraire
 * @param int   pNb   Nombre à comparer
 * Compare $pNombre et $this->nombre; 
 */
 public function Compare ( $pNombre )
 {
     if ( $this->nombre > $pNombre )
     {
         return true;
     }
     else
     {
         return false;
     }
 }

Généralités

  • Les tags PHP longs devront toujours être utilisés (<?php ... ?>). Les shorts open tags" ( <? ... ?> ) ainsi que les tags en majuscules ( <?PHP ... ?> ) sont à proscrire.
  • Ne pas utiliser require ou include mais plutôt require_once ou include_once
  • N'utiliser include_once que dans les cas où tout manque de fichier inclus n'est pas critique

Sera complété par la suite....