如何用 php 8 中的新属性替换 phpdocs

How to replace phpdocs with new attributes in php 8

我正在使用 laravel。我需要知道如何在 php 8 中使用属性编写 phpdoc。

/**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
      //Some code
      return [];
    }

谁能解释一下上面的代码是如何用属性写的。

我相信您误解了属性的用途,以及它们与文档块的关系。文档块有两种常见用法(注释用/** ... */标记):

  • 文档 代码(因此得名“doc block”),以大多数标准化的方式可以被各种工具读取,包括文档生成器和 IDE。
  • 向代码添加机器可读的注释,以便与可以根据这些自动生成行为的库和框架一起使用。例如,ORM 可能使用 @TableName('Foo') 到 link 的注释和 class 到特定数据库 table,并生成适当的 SQL.

您显示的示例是 first 用法。你写的还是文档的正确写法

PHP 8的原生属性替换了第二种用法。查找什么属性取决于库,但是以前在文档块中查找 @TableName('Foo') 的 ORM 现在可能会查找 #[TableName('Foo')] 作为本机属性。