Aller au contenu

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.

// ✅ Correct
interface LpzEntityInterface { }

// ❌ Incorrect
interface EntityLpzInterface { }

Règle 4 — Les traits sont suffixés par Trait, après le préfixe de projet.

// ✅ Correct
trait LpzTimestampableTrait { }

// ❌ Incorrect
trait TimestampableLpzTrait { }

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