首页 > 解决方案 > 带有教义的类型提示:当使用带有类型提示的 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;
    // [...]

如果没有,是否正在讨论该功能 - 还是有办法提出建议?

标签: phpsymfonydoctrine-ormtype-hintingphp-7.4

解决方案


教义类型是PHP 和 SQL 类型之间的转换。即使是简单的 PHP 类型,如string数据库中的 VARCHAR、DECIMAL 或 CLOB。

类型提示也可以是一个对象:

private UuidInterface $id;

如何将它存储在数据库中?字符串,二进制,整数?

Doctrine 不了解您的应用程序业务逻辑,因此我认为反射不是注释的良好替代品。


推荐阅读