Avatar ·

Comment implémenter correctement les énumérations (Enum) en PHP sans support intégré ?

Bonjour à tous ! Je suis un développeur PHP débutant et j'ai rencontré un problème. Dans d'autres langages (Java, C#), il existe une construction pratique enum qui permet de définir un ensemble fixe de constantes. Par exemple, les statuts de commande : "nouveau", "en traitement", "expédié", "livré".

En PHP, je n'ai pas trouvé de enum intégré. J'ai essayé d'utiliser des constantes de classe ordinaires :

class OrderStatus {
    const NEW = 'new';
    const PROCESSING = 'processing';
    const SHIPPED = 'shipped';
    const DELIVERED = 'delivered';
}

$status = OrderStatus::NEW;

Mais ce n'est pas pratique. Je ne peux pas vérifier que la variable $status contient uniquement une des valeurs autorisées. On peut accidentellement assigner $status = 'invalid_status', et aucune erreur ne sera générée. Il n'y a pas non plus de possibilité d'ajouter des méthodes à chaque valeur (par exemple, obtenir la description du statut en russe).

Comment organiser correctement les énumérations en PHP ? Existe-t-il des motifs de conception...