symfony如何解析和使用注释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了symfony如何解析和使用注释相关的知识,希望对你有一定的参考价值。

使用Symfony注释作为路由的例子是相当惊人的,但我想知道这个框架如何解析注释并提取注释?例如:

 /**
 * @Route("/tehran", name="tehran")
 */

然后将其用作下一个控制器方法的路径。

答案

Symfony使用Doctrine Annotations模块来解析您的类中的docblock。

看到:

https://github.com/doctrine/annotations

https://doctrine-common.readthedocs.io/en/latest/reference/annotations.html

它使用Reflection类来读取注释

https://secure.php.net/manual/fr/book.reflection.php

Symfony将在第一次运行时读取您的注释(并将缓存已解析的路由)。然后使用UrlMatcher将路由与当前请求匹配。

http://api.symfony.com/3.2/Symfony/Component/Routing/Matcher/UrlMatcher.html

以上是关于symfony如何解析和使用注释的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 使用父级中的一个字段和具有不同注释/映射的扩展实体

Symfony 4.4 / NelmioApiDocBundle 4.0.1 注释问题

Symfony 验证器的注释返回“注释从未导入异常”

Symfony 3 Doctrine MySQL - 使用 @ORM 注释生成实体

Symfony Doctrine 验证不适用于可嵌入的注释

Symfony 3 Sonata Admin 使用注释创建管理员