Règles de nommage

Casse

Tous les identifiants sont écrits en snake_case.

Cette convention est valable pour le code PHP et JS mais également pour MySQL (nom des tables et des champs).

2 exceptions :

  • le nom des méthodes des contrôleurs qui sont appelées par le routing de Laravel est écrit en camelCase
  • le nom des classes est également écrit en camelCase

D’une manière générale Laravel n’est pas très cohérent sur ce sujet : certaines méthodes sont en snake_case (dans la classe Helpers par exemple) d’autres sont en camelCase (celles attendues par le routing).

Abréviations

Les abréviations sont interdites dans les identifiants de même que les noms qui n’ont pas de signification explicite, par exemple :

$i = 0;
$n = 0;
$v1 = 0;
$v2 = 0;

Par exception les abréviations suivantes sont acceptées :

id : identifiant
num : numéro
max, maxi : maximum
min, mini : minimum

Identifiants significatifs

Le nom choisi pour un identifiant doit être significatif et ne doit pas prêter à confusion. Ainsi l’identifiant contact représente forcément une occurence d’un contact et en aucun cas l’identifiant d’un contact.

Si on veut nommer l’identifiant d’un contact il faut l’appeler contact_id.

Tableaux

Les identifiants de tableaux se terminent obligatoirement par un s ou par un x.

Par exemple :

utilisateurs : tableau d’utilisateurs
utilisateur_ids : tableau d’identifiants d’utilisateurs

Langue

Pour les noms de méthodes, les verbes sont en anglais et les objets métier sont en français.

Par exemple :

  • add_affaire(),
  • view_utilisateur()

Tous les autres identifiants sont en français.

Règles de codage

Structures de contrôle

Toutes les structures de contrôle doivent contenir leur bloc de code entre accolades. En particulier ceci est à proscrire absolument :

if ($denominateur == 0)
    $resultat = 0;

Une seule exception : au début de certaines méthodes lorsqu’il s’agit d’initialiser une série de valeurs par défaut. Dans le cas l’instruction est obligatoirement située sur la même ligne que le if (condition) :

if (!isset($largeur_groupe)) $largeur_groupe = 12;
if (!isset($sens))           $sens           = ‘ASC’;

Alignement

Dans les cas d’affectations successives le signe = doit rester aligné :

$lien->entite_principale_id = BZ_Constantes::entite_contact;
$lien->entite_secondaire_id = BZ_Constantes::entite_affaire;
$lien->item_principal_id    = Session::get(‘contact_id’);
$lien->item_secondaire_id   = $affaire->id;
$lien->relation_id          = Input::get(‘relation_id’);

Régler les préférences de l’IDE en conséquence afin d’automatiser le formatage.