acelaya/doctrine-enum-type Symfony setup guide Setup Create enum <?php namespace App\Enum; use MyCLabs\Enum\Enum; /** * @method static LetterEnum A() * @method static LetterEnum B() */ final class LetterEnum extends Enum { public const A = 'a'; public const B = 'b'; } Create custom doctrine type class <?php namespace App\Doctrine\Type; use Acelaya\Doctrine\Type\PhpEnumType; use App\Enum\LetterEnum; final class LetterEnumType extends PhpEnumType { protected string $enumClass = LetterEnum::class; public function getName(): string { return LetterEnum::class; } } Register enum as a custom doctrine type # config/packages/doctrine.yaml doctrine: dbal: types: App\Enum\LetterEnum: App\Doctrine\Type\LetterEnumType Usage <?php namespace App\Entity; use App\Enum\LetterEnum; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity() */ class Alphabet { /** * @ORM\Column(type=LetterEnum::class) */ private LetterEnum $letter; }