Avatar ·

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! <<>>

Regras