PHP 8.1 представляет официальную поддержку Enum. Doctrine привнесла поддержку типа Enum в свою структуру ORM, а Symfony добавила поддержку сериализации и десериализации типа Enum. Пришло время перевести ваши проекты на использование PHP Enum, если вы используете сторонние решения для перечисления. Чтобы использовать PHP Enum, вам необходимо обновиться до PHP 8.1 и установить версию PHP 8.1 в файле composer проекта. {
//...
"require": {
"php": ">=8.1",
//...
}
} Создание перечисляемого класса Например, мы добавим Status к Post сущности и определим несколько фиксированных значений статуса поста. namespace App\Entity; enum Status: string
{
case Draft = "DRAFT";
case PendingModerated = "PENDING_MODERATED";
case Published = "PUBLISHED";
} Здесь мы используем перечисление, поддерживаемое строкой, добавляем поле в Post класс. #[Column(type: "string", enumType: Status::class)]
private Status $status; Обратите внимание, установите enumType в качеств