贴段PHP反射读书代码

作者:跑调 发布时间:June 25, 2011 分类:开源路漫漫兮 No Comments

看书看到关于PHP反射API的使用,对与这个东西做为插件的实现方法,还是充满了好奇。贴一段代码,这段代码可以用来取到类的说明文字。

//
/** This is Class A */
class a{};
/** This is Class B */
class b{};
$cl = get_declared_classes();
foreach($cl as $c) {
    $re = new reflectionclass($c);
    if($re->isUserDefined()) {
        $reclass[] = $re->getDocComment();
    }
}
var_dump($reclass);
//

在实际过程中发现,文件修改后第一次刷新,可以正常取到注释内容。再次刷新,返回全部是false。引用一段说明:
* 是否require了要分析的文档所在的文件;(这一点我们是本文件内,不存在疑问)
* 文档格式是否符合php doc语法标准,特别注意文档应该紧挨着类或方法的声明语句(中间不能有空行),文档的开始行有两个“*”号;(第一次能获取到,说明格式是正确的)
* 是否开启了PHP加速模块,PHP文档默认是会存在内存中的,而加速模块可能会将文档信息去除以减小内存的占用(对于文档只能在所分析的文件有修改后的第一次获取才能成功时,一般都是这种情况)。

引用来源:
作者:RockUX–WEB前端
出自:PHP无法获取文档注释