Mes conventions en « programmation » PHP et CSS

Tiens, ça faisait longtemps que je n’avais pas participé à une chaine de blog. Suite à l’invitation de Darklg à livrer les conventions que j’utilise en programmation, voici mes secrets avec un exemple PHP et CSS à la clé. Voici une des rares fonction PHP que j’ai eu l’occasion de « développer » ; elle rassemble peu ou prou ce qui se fait presque partout ailleurs :

<?php
function currentPage($strPage) {
    if (strstr($_SERVER['PHP_SELF'], $strPage)) {
        echo 'class="current_' . $strPage. '" ';
    } else {
        echo '';
    }
}
?>
  • <?php car <? tout seul, saymal 😉
  • Fonctions en lowerCamelCase. Avant, j’avais tendance à utiliser le même format que les fonctions native du langage (nom_fonction) en séparant les mots avec un underscore,
  • Accolade ouvrante sur la même ligne que l’intitulé de la fonction,
  • Variables préfixées avec 3 caractères (ici str pour string -> chaine de caractère) afin de savoir ce que l’on fait, même si sur 3 lignes les risques de se tromper sont peu nombreux ^_^v (les conventions sont faites pour être appliquées par tous les temps !).
  • Indentation avec des tabulations d’une longueur de 4 espaces ou simplement 4 espaces, mais je trouve l’utilisation de la touche tab plus rapide 😉
  • Dans cet exemple, je n’ai pas mis d’espace entre les parenthèses et les variables ou les opérateurs, mais il m’arrive souvent d’en mettre pour clarifier le code.

En CSS, je n’utilise qu’un seule convention de manière systématique : l’accolade ouvrante sur la même ligne que le sélecteur et la fermante sur sa propre ligne :

.classecomportantunseulmot {
    float: left;
    margin-left: 1.5em;
    padding: 1em;
    font: 1em/1.5 'andale mono', 'lucida console', monospace;
    color: #333;
    background: #eee url(pix/puce.png) no-repeat 0 5px;
}
.classecomportant-deuxmots {
    color: #333;
}

Pour le reste, j’essaie de respecter l’ordre des propriétés suivant :

  • Structure (flottement, positionnement, marges internes et externes, etc.),
  • Apparence (typographie, interlignage, couleur, background, etc.). J’essaie de suivre ce principe au niveau même de la feuille de style dans sa globalité.

Par ailleurs, lorsque la classe est composée de plusieurs termes, j’utilise le tiret et je m’arrange pour limiter le nom des sélecteurs à trois mots.

Enfin, si je garde l’accolade fermante sur sa propre ligne même quand il n’y a qu’une seule ligne de propriétés CSS pour garder la lisibilité de l’ensemble, je ne m’amuse pas à remettre de l’ordre dans la mise en page des frameworks CSS comme Blueprint qui laissent les accolades ouvrantes et fermantes sur la même ligne lorsqu’il n’y a qu’une propriété dans la déclaration CSS !

Voilà, c’est fini ! Je passe le relai à tous les lecteurs-développeurs qui lisent ce blog 🙂