Mes conventions en "programmation" PHP et CSS

Rigueur. Et passion !

Ne dites pas à ma mère que je suis artisan en architecture de l'information appliquée aux sites web : elle croit que je suis webdesigner, intégrateur HTML & CSS, rédacteur web, formateur NTIC et consultant en webmarketing depuis 2001 ! Voulez-vous en savoir plus ?

Le blog de l'intégrateur web

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 :)

Articles sur le même sujet

PS : Le respect de la vie privée sur internet est important : j'ai décidé d'échanger mon bouton Like de Facebook par un bouton Faire un don de Paypal car
Il n'y pas d'amour, il n'y a que des preuves d'amour (Jean Cocteau) ;) Merci d'avance.



9 commentaires pour “Mes conventions en "programmation" PHP et CSS”

  1. Sylvain dit :

    Préfixer ses variable avec son type c’est la notation hongroise si je ne m’abuse ? o_O

  2. Bruno Bichet dit :

    @sylvain > yep, effectivement, j’utilise donc une notation lowerCamelCaseHongroise ;)

  3. Darklg dit :

    Merci d’avoir répondu à la chaine :) Elle est très instructive, en plus ^^

  4. dePassage dit :
    Accolade ouvrante sur la même ligne que l’intitulé de la fonction,

    Bjr, J’ai passé l’accolade ouvrante à la ligne depuis qques temps et à l’usage me semble + lisible.

    function process() { }

  5. Palleas dit :

    J’suis pareil pour la plupart des choses, mais pour la fonction, je préfère un return à un echo :)

  6. Gameplayer dit :

    « 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, »

    En fait, le langage PHP est assez ignoble sur ce point, certaines fonctions sont séparées par un _, d’autres sont en camelcase, d’autres tout en minuscule…

  7. Bruno Bichet dit :

    @Darklg > de rien, ça me donne l’occasion de mettre « PHP » dans le title ^_^v

    @depassage > C’est peut-être plus lisible, je ne sais pas… J’essaie toujours de trouver le bon compromis entre la lisibilité,le nombre de ligne et la facilité de la maintenance. Ce qui fait que même pour les CSS, je commence à changer mes habitudes en utilisant peu à peu .maclass { propriété: valeur; }

    @Palleas > je ne suis pas vraiment développeur et je ne connais pas la subtilité entre l’echo et le return…

    @Gameplayer > c’est clair, je me dit que les developpeurs du langage PHP devraient s’atteler à harmoniser le nom des fonctions dans une prochaine version. Quoique, ça doit demander pas mal de ressources pour garder la compatibilité avec les anciennes versions du langage !

  8. @br1o : pour compléter ce que dit Palléas, echo affiche directement la valeur, alors que return ne fait que la retourner. Avec return, tu peux par exemple enregistrer le résultat de la fonction dans une variable $classname = maFonctionDeRetour(); et utiliser cette chaîne $classname dans un autre contexte, par exemple pour effectuer des retraitements ou des concaténations.

    Avec ton exemple, c’est pas forcément évident puisque ta fonction currentPage() a pour but quasi-exclusif d’envoyer des données en sortie HTML. Ce type de fonction a son utilité, mais ton intitulé de fonction ne dit ni : – sa nature (elle fait un print/echo au lieu de return) – l’exacte donnée concernée (un attribut de classe css)

    Si tu bossais avec des développeurs, ils te feraient les gros yeux avec des noms de fonctions pareils ! Bien sûr, si tu es tout seul tu t’y retrouves plus facilement mais essaie de te relire dans trois ans…

    Perso j’aurais appelé cette fonction affiche_classe_page_courante(), en français. Mais on pourrait aussi écrire echoCurrentPageClass() si tu es anglophile.

    Mais ce n’est que mon avis…

Laissez un commentaire

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Les commentaires sont publiés sous votre pleine et entière responsabilité et ne doivent pas contrevenir aux lois et règlementations en vigueur. Les propos racistes ou antisémites, diffamatoire ou injurieux, divulguant des informations fausses, relatives à la vie privée d'une personne ou utilisant des oeuvres protégées par les droits d'auteurs ne sont pas les bienvenus et seront modérés sans modération.

Merci d'être constructif et n'oubliez pas : « sans la liberté de ramer il n'est point d'éloge flotteur ! »



Colophon

CSS & Webdesign est une publication irrégulomadaire à tendance hebdomadaire
éditée par Bruno Bichet qui carbure à WordPress et au café équitable.
Tous droits réservés © 2006 - 2011.

Contactez l'auteur du site