php - 带有教义的类型提示:当使用带有类型提示的 PHP 7.4 时,@ORM\Column 注释上是否仍需要类型属性?
问题描述
@ORM\Column的原则文档说类型属性是必需的。这仍然适用于 PHP 7.4 吗?直接在 PHP 中使用类型提示,我觉得注释中的类型属性是多余的。有没有办法不提供类型属性并使教义从 PHP 类型提示中推断出来?
例子:
而不是使用此代码
class Client
{
/** @ORM\Column(name="code" , type="string" , length=20 , unique=true) */ private string $code;
/** @ORM\Column(name="moduleX", type="boolean", nullable=true ) */ private ?bool $moduleX;
// [...]
我想写以下内容:
class Client
{
/** @ORM\Column(name="code" , length=20, unique=true) */ private string $code;
/** @ORM\Column(name="moduleX", ) */ private ?bool $moduleX;
// [...]
如果没有,是否正在讨论该功能 - 还是有办法提出建议?
解决方案
教义类型是PHP 和 SQL 类型之间的转换。即使是简单的 PHP 类型,如string
数据库中的 VARCHAR、DECIMAL 或 CLOB。
类型提示也可以是一个对象:
private UuidInterface $id;
如何将它存储在数据库中?字符串,二进制,整数?
Doctrine 不了解您的应用程序业务逻辑,因此我认为反射不是注释的良好替代品。