Implementação de Enumerações (Enum) em PHP: como fazer corretamente?
Olá a todos! Sou novo em PHP (escrevo há cerca de um ano) e me deparei com um problema. No projeto, preciso armazenar status de pedidos: "novo", "em processamento", "enviado", "entregue". Atualmente, uso constantes comuns:
```php
define('STATUS_NEW', 1);
define('STATUS_PROCESSING', 2);
define('STATUS_SHIPPED', 3);
define('STATUS_DELIVERED', 4);
```
Mas isso é inconveniente: primeiro, posso acidentalmente passar qualquer número para uma função em vez do status, e o PHP não emitirá erro. Segundo, se precisar adicionar uma descrição ou método para o status (por exemplo, "pode cancelar o pedido?"), tenho que escrever funções separadas. Terceiro, ao exibir a lista de status em um dropdown de formulário, fico confuso com chaves e valores.
Ouvi dizer que no PHP 8.1 surgiram enums nativos, mas o projeto roda no PHP 7.4 e ainda não é possível atualizar. Como implementar enumerações corretamente em versões antigas do PHP? Preciso de algo confiável, com verificação de tipos e possibilidade de adicionar métodos. Agradeço por exemplos de código!
<<>>