Throw 标签的 PHP / Symfony 注释

1 php annotations symfony

我最近遇到了一些让我在 Symfony 中进行注释的小事(不确定它是否也是纯 PHP 的事情)。

新的路线注释如下所示: #[Route('route', name: 'route_name')]

当我想要相同类型的注释时,@throws我找不到任何方法来代替看起来像这样的旧类型:

/**
 * @throws Exception
 */
Run Code Online (Sandbox Code Playgroud)

所以我想要新类型的注释,即使是@throws

Ale*_*ant 5

属性背后的主要思想是将静态元数据附加到我们的代码(方法、属性等)。这些元数据通常包括诸如“配置”之类的概念。在您的示例中,此属性为您的框架设置了一条路径。有了原则,你就可以建立你的实体。几年前,还没有属性,因此开发人员使用注释来声明它们。PHP8 允许我们使用属性。让我们避免使用注释(@Route)。

抛出标签不会在您的应用程序中设置任何内容。该异常只能由您的代码引发。

/**
 * @throws Exception //this line has no impact on your code
 */
#[Route('route', name: 'route_name')] //this line has an impact by setting up your routes
public myAction() {
  throw new Exception('foo'); // This line have an impact on your code
}
Run Code Online (Sandbox Code Playgroud)

这是为开发人员(以及有价值的 IDE)提供的信息,可以帮助我们理解代码。因此, @Throw 标签没有属性版本。@Throw 标签“仅”是文档、PHPDoc、注释:) 您的代码应该在注释和属性中混合注释