feedback

 

Fil directeur du type de codage de C5:

Pour ceux qui désirent réaliser des codes pour Concrete5  (nous aimerions d'ailleurs les partager), il vous faut savoir que celui-ci est formater selon les règles suivantes:

note: La structure suiante est tirée de guide de codage du Zend Framework Coding Style Guide. Merci les amis!)

Formatage des fichiers

  • Commencer la page de code avec < ? php et pas < ? . Concrete se base sur cette règle stricte.
  • Indentez votre code avec des tabulations, et non pas des espaces.
  • Si un fichier contient uniquement du code PHP, inclure la balise de fermeture ?> est fortement déconseillé.
  • Une longueur de ligne d'environs 80 caractères est fortement conseillée.
  • Les retours de chariots type UNIX sont obligatoires.

Conventions sur les noms

Noms de fichiers

  • TOUS les noms de fichier doivent être en minuscule, avec des tirets bas ("_") pour la séparation des termes. Aucune majuscule n'est permise.

Noms des Classes/Fonctions

  • Les noms des classes de blocs doivent obligatoirement être dans le format Bloc, où le Nom du Block est la version camel-cased du répertoire du bloc dans le système de fichiers.
  • Les classses d'aide (Helpers) doivent être au format Helper.

note: camel-case -> style d'écriture informatique consistant à écrire la première lettre de chaque mot en majuscule.

Méthodes pour les Classes/Fonctions

  • Les modèles Core et librairies devraient normalement êtres nommés comme il le sont dans la base de données ("page.php","Page" et "Pages", "page_theme.php", "PageTheme" et "PageThemes"), etc..
  • Dans les modèles, tous les noms de fonctions et de classes devrait être camel-cased, sans tirets bas pour séparer les termes.
  • Dans les contrôleurs, toutes les fonctions doivent être en minuscule, avec des tirets bas pour séparer les termes.

Paramètres

  • Tous les paramètres de contrôleurs doivent être en minuscule, avec les tirets bas utilisés le cas échéant.

Tables de la base de données

  • Toutes les tables de la base de données doivent êtres camel-cased, et non pas uniquement en minuscule, avec cependant les exceptions suivantes:
    • Les tables spécifiques aux blocs doivent commencer par bt en minuscule, et ensuite respecter le standard décris ci-dessus.
    • Si un bloc utilise plusieurs tables pour stocker les données, toutes les tables doivent commencer par bloc, et doit inclure ce nom de table du bloc dans  leur nom. Par exemple, si j'ai un bloc sondage, qui stock ces données dans la table btPoll, mais as aussi les tables pour les questions et les résultats, mes tables devraient être nommées comme suit:
    • btPoll btPollQuestions btPollAnswers

Style de Codage

Chaîne de caractères

  • Chaînes littérales : Lorsqu'une chaîne est littérale (qu'elle ne contient pas de variable de substitution), l'apostrophe ou ' doit être utilisé pour démarquer la ligne.
  • Chaînes littérales avec apostrophes : Lorsqu'une chaîne est littérale utilise déjà des apostrophes, il est permit de démarquer celle-ci avec des guillemets ou ".
  • Variables de substitution: L'utilisation des variable de substitution est autorisé si vous utilisez l'une des deux formes suivantes :
  • Pour l'uniformité aucune autre forme ne devrait être utilisée.
    • Concaténation de chaîne : Les chaînes peuvent être concaténée en utilisant l'opérateur "." . Un espace doit toujours être ajouté avant et après le "." par facilité la lecture:
    •  
    • Lorsqu'une chaîne est concaténée avec l'opérateur "." , il est autorisé d'écrire la chaîne sur plusieurs lignes pour faciliter la lecture. Dans ce cas, chaque ligne successives devrait être complétée avec un espace comme pour l'opérateur "."; L'opérateur est aligné sous l'opérateur "=" :
    •  

Tableaux

  • Tableaux indexés numériquement
    • Les nombres négatifs ne sont pas permis en tant qu'indice.
    • Il est forment recommandé que tous les tableaux aient une base d'index partant de zéro (0).
    • En déclarant des tableaux répertoriés avec leurs éléments, un espace doit être ajouté après chaque virgule pour faciliter la lecture :
    •  
  • Tableaux associatifs
    • Lorsque vous déclarez un tableau associatif avec les éléments du tableau, il est conseillé de décomposer la construction sur plusieurs lignes. Dans ce cas, chaque ligne successive doit être complétée avec des espaces pour que les clés et les valeurs sont alignées.

Classes et Methodes/Fonctions

  • Les noms de classes doivent être identifiées à l'extrême gauche de votre code, de la page, sans indentation.
  • Toutes les accolades suivant les classes et les fonctions doivent s'ouvrir sur la même ligne que la directive de classe/fonction.
  • Lorsque vous terminez, refermez, une classes/fonction, Les accolades doivent êtres seules sur leur propre ligne, et toujours une seule par ligne. L'accolade finale d'une classe ou fonction doit être au même niveau d'identation que celle d'ouverture de celle-ci.
  • Les mots clef PHP5 peuvent êtres utilisés lorsque vous déclarez une variable de la  classe.

Structure de Contrôle

If/else elseif

  • Les structures de contrôle basées sur la construction if et elseif doivent avoir un espace unique avant l'ouverture de la parenthèse de la condition, et un seul espace après la fermeture de celle-ci.
  • Avec la structure conditionnelle entre les parenthèses, les opérateurs doivent êtres séparés par des espaces pour faciliter la lecture. Des parenthèses intérieures sont recommandées pour améliorer le groupement logique de conditions plus complexes.
  • La parenthèse d'ouverture est écrite sur la même ligne que la condition. Celle de fermeture est toujours écrite seule sur sa ligne. Tout contenu entre parenthèse doit être identé avec une tabulation.
  • L'utilisation de la conditionnelle elseif est permise mais fortement déconseillée en faveur de la combinaison else if.
  • L'omission de parenthèses pour les lignes uniques de if ou else est interdite.

Structure de contrôle type Switch

  • Les structures de contrôle basées sur la construction switch doivent avoir un espace unique avant l'ouverture de la parenthèse de la condition, et un seul espace après la fermeture de celle-ci.
  • Tout les contenus des structures type switch doivent êtres identés par des tabulations. Les contenus de chaque case de la structure doivent êtres identés avec une tabulation supplémentaire.
  •  

  • Le cas de la condition par défaut ne doit jamais être oublié de la structure conditionnelle type switch.

Syntaxes d'alternative

  • la syntaxe PHP [[http://us3.php.net/alternative_syntax|syntaxe alternative de contrôle de structure]] n'est pas autorisé.