PHP / Symfony Throw标记的注解

wz3gfoph  于 2022-11-16  发布在  PHP
关注(0)|答案(1)|浏览(125)

我最近遇到了一件困扰我在Symfony中注解的小事(不确定它是否也是纯PHP的事情)。
新布线注解如下所示:#[Route('route', name: 'route_name')]
当我想要@throws的相同类型的注解时,我找不到任何方法来代替看起来像这样的旧类型:

/**
 * @throws Exception
 */

因此,我需要新类型的注解,即使是@throws

xienkqul

xienkqul1#

属性背后的主要思想是将静态元数据附加到代码中(方法、属性等)。这些元数据通常包含“配置”等概念。在您的示例中,这个属性为您的框架设置了一条路线。使用doctrine,您可以设置您的实体。几年前,没有属性,所以开发人员使用注解来声明它们。PHP 8允许我们使用属性。让我们避免使用注解(@Route)。
Throw标记不会在您的应用程序中设定任何项目。例外状况只能由您的程式码掷回。

/**
 * @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
}

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

相关问题