问题
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:
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
来源:https://stackoverflow.com/questions/52090295/how-symfony-parse-and-use-annotation