我如何在条令中使用php8属性而不是注释?

我如何在条令中使用php8属性而不是注释?,php,symfony,doctrine-orm,doctrine,php-8,Php,Symfony,Doctrine Orm,Doctrine,Php 8,这就是我想要使用的: #[ORM\Column(type=“string”)] 与此相反: /** *@ORM\Column(type=“string”) */ 但我得到了一个错误: (error: Class 'Column' is not annotated with 'Attribute' ) 是因为条令还不支持它,还是我遗漏了什么?编辑:支持PHP8属性的条令2.9 PHP 8注释已合并到ORM2.9.x分支中,该分支尚未发布: 以下是与此功能相关的文档参考: 正如@Seb333

这就是我想要使用的:

#[ORM\Column(type=“string”)]
与此相反:

/**
*@ORM\Column(type=“string”)
*/
但我得到了一个错误:

(error: Class 'Column' is not annotated with 'Attribute' )

是因为条令还不支持它,还是我遗漏了什么?

编辑:支持PHP8属性的条令2.9

PHP 8注释已合并到ORM
2.9.x
分支中,该分支尚未发布:

以下是与此功能相关的文档参考:
正如@Seb33300所说,是的,它在ORM2.9中。但对于Symfony,你需要做的不仅仅是这些。以下是升级步骤的完整列表:

  • 升级条令ORM:
    “条令/ORM”:“^2.9”

  • 升级条令包:
    “条令/条令包”:“^2.4”

  • 设置
    doctrine.orm.mappings.App.type:attribute
    (默认设置为
    annotation
    ):

    #config/packages/doctrine.yaml
    教条:
    orm:
    映射:
    应用程序:
    类型:属性
    
  • 将类似更改应用于实体:

    --- Dummy.php.old     Mon Jun 07 00:00:00 2021
    +++ Dummy.php         Mon Jun 07 00:00:00 2021
    @@ -7,15 +7,11 @@
     use App\Repository\DummyRepository;
     use Doctrine\ORM\Mapping as ORM;
    
    -/**
    - * @ORM\Entity(repositoryClass = DummyRepository::class)
    - */
    +#[ORM\Entity(repositoryClass: DummyRepository::class)]
     class Dummy
     {
    -    /**
    -     * @ORM\Id
    -     * @ORM\GeneratedValue
    -     * @ORM\Column(type = 'integer')
    -     */
    +    #[ORM\Id]
    +    #[ORM\GeneratedValue]
    +    #[ORM\Column(type: 'integer')]
         private $id;
     }
    

  • 您有什么用例需要使用这样的注释?你想解决什么?对你有用吗?我使用的是2.9.1版本的条令ORM和1.13.1版本的条令批注,但在运行架构更新后,什么也没有发生。@Kevin检查我对这个问题的回答从“批注”到“属性”的更改是至关重要的。谢谢你把它记录下来。