neutronstars / doctrine-enum-php-type
为PHP枚举系统添加了一个 doctrine 类型,旨在尽可能接近 PHP 8.1 的早期版本。
1.2.0
2021-07-09 21:02 UTC
Requires
- php: ^7.1 | ^8.0
- doctrine/dbal: ^2.13
- neutronstars/enum: ^1.4
Requires (Dev)
- phpunit/phpunit: ^6.0 | ^7.0 | ^8.0 | ^9.0
This package is auto-updated.
Last update: 2024-09-10 04:21:32 UTC
README
阅读枚举PHP文档
安装
composer require neutronstars/doctrine-enum-php-type
Doctrine 配置
如果您使用它,您必须为您的枚举创建一个 Type 类
namespace App\Types; class MyEnumType extends \NeutronStars\Enum\Types\EnumType { public const MY_ENUM = 'my_enum'; public function getName(): string { return self::MY_ENUM; } public function convertToPHPValue($value,\Doctrine\DBAL\Platforms\AbstractPlatform $platform): MyEnum { return MyEnum::from($value); } }
您必须将此添加到 doctrine.yaml
配置文件中
doctrine: dbal: types: my_enum: class: App\Types\MyEnumType
在包含您的实体字段的注解中,您必须放置类型
/** * @ORM\Column(type="my_enum") * @var MyEnum|null */ private ?MyEnum $myEnum;
在您的 SQL 迁移期间,您必须取消注释包含枚举的列
$this->addSql('COMMENT ON COLUMN "your_table"."your_column" IS \'(DC2Type:my_enum)\';');