php 注解
到目前为止,php的反射特性中是不支持注解annotation的,但是可以支持基本的文档注释内容的获取 reflectionmethod::getdoccomment() - 从5.1.0开始 。php的反射其实已经挺强大的了,只要再进一步,解析文档注释中的相关注解内容即可。
appserver.io 提供了一个lang库,实现了对注解的支持。其中还运用了php的tokenizer特性来解析注解代码,具体原理不详述,有兴趣自行阅读代码。
https://github.com/appserver-io/lang
其关于注解的说明见:http://appserver.io/get-started/documentation/annotations.html
在此摘录其演示代码如下:
values['pattern']; }}class indexcontroller{ /** * default action implementation. * * @return void * @route(pattern=/index/index) */ public function indexaction() { // do something here }}// create a reflection class to load the methods annotation $reflectionclass = new reflectionclass('indexcontroller');$reflectionmethod = $reflectionclass->getmethod('indexaction');$reflectionannotation = $reflectionmethod->getannotation('route');$pattern = $reflectionannotation->newinstance()->getpattern();
通过这种特性,可以实现注解的方式指定方法的url路由模式 /index/index
以上就介绍了自行实现php代码注解特性,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。