Conventions de nommage¶
Conventions de nommage — Préfixe de projet (Lpz)¶
Références : PSR-FIG Naming Conventions · PSR-1 · PHP RFC class-naming · PEAR Naming · Symfony Coding Standards
Principe général¶
Le préfixe de projet (Lpz) se place toujours en premier dans un identifiant.
L'ordre de lecture est : Projet → Qualificatif → Concept métier.
Règles pour les classes¶
Règle 1 — Le préfixe de projet précède tous les autres qualificatifs.
// ✅ Correct
class LpzAbstractEntity { }
class LpzAbstractRepository { }
class LpzAbstractService { }
// ❌ Incorrect
class AbstractLpzEntity { }
class AbstractLpzRepository { }
Règle 2 — Le qualificatif Abstract suit immédiatement le préfixe de projet.
Conforme à la convention PSR-FIG : « Abstract classes MUST be prefixed by Abstract ».
Quand un préfixe de projet s'ajoute, il se place avant Abstract car il constitue le qualificatif de plus haut niveau.
// Structure : {Projet}{Abstract}{Concept}
class LpzAbstractEntity { } // Lpz + Abstract + Entity
class LpzAbstractRepository { } // Lpz + Abstract + Repository
Règle 3 — Les interfaces sont suffixées par Interface, après le préfixe de projet.
Règle 4 — Les traits sont suffixés par Trait, après le préfixe de projet.
Règles pour les méthodes¶
Règle 5 — Le préfixe de projet en camelCase précède le verbe d'action.
Conforme à PSR-1 (camelCase) et aux conventions PEAR (« functions should have the package name as a prefix »).
// ✅ Correct
public function lpzCreateQueryBuilder(): QueryBuilder { }
public function lpzFindBySlug(string $slug): ?object { }
public function lpzCountItems(): int { }
// ❌ Incorrect
public function createLpzQueryBuilder(): QueryBuilder { }
public function findLpzBySlug(string $slug): ?object { }
Résumé¶
| Position | Rôle | Exemple |
|---|---|---|
| 1ère partie | Projet | Lpz / lpz |
| 2ème partie | Qualificatif | Abstract / verbe d'action |
| 3ème partie | Concept métier | Entity, Repository… |