How symfony parse and use annotation

2019-08-29 03:10发布

Using Symfony annotation for example for routing is quite amazing, but I wonder how this framework parse the comments and extract the annotation? For example:

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

and then use it as a route to next controller method.

1条回答
我只想做你的唯一
2楼-- · 2019-08-29 03:29

Symfony uses the Doctrine Annotations module to parse the docblock from your class.

See:

https://github.com/doctrine/annotations

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

It uses Reflection class to read the annotations

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

Symfony will read from your annotations on the first run (and will cache the parsed routes). Then the routes are matched with the current request using an UrlMatcher.

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

查看更多
登录 后发表回答