首页 > 解决方案 > symfony 如何解析和使用注解

问题描述

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

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

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

标签: phpsymfonyparsingannotationssymfony4

解决方案


Symfony 使用 Doctrine Annotations 模块从你的类中解析文档块。

看:

https://github.com/doctrine/annotations

https://www.doctrine-project.org/projects/doctrine-annotations/en/current/index.html

它使用反射类来读取注释

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

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

https://github.com/symfony/symfony/blob/3.2/src/Symfony/Component/Routing/Matcher/UrlMatcher.php


推荐阅读