Avatar ·

¿Cómo implementar correctamente enumeraciones (Enum) en PHP sin soporte nativo?

¡Hola a todos! Soy un desarrollador PHP principiante y me encontré con un problema. En otros lenguajes (Java, C#) hay una construcción conveniente enum que permite definir un conjunto fijo de constantes. Por ejemplo, estados de pedido: "nuevo", "en proceso", "enviado", "entregado".

En PHP no encontré un enum nativo. Intenté usar constantes de clase normales:

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

$status = OrderStatus::NEW;

Pero esto es incómodo. No puedo verificar que la variable $status contenga solo uno de los valores permitidos. Se puede asignar accidentalmente $status = 'invalid_status' y no habrá ningún error. Tampoco hay posibilidad de agregar métodos a cada valor (por ejemplo, obtener la descripción del estado en español).

¿Cómo organizar correctamente las enumeraciones en PHP? ¿Existen algunos patte