如何在PHP5对象中查找注释?

时间:2012-03-16 18:21:09

标签: php parsing annotations docstring

我希望能够在我的PHP5对象中实现自定义注释,并且我想通过构建自己的解析器来了解整个过程是如何工作的。

首先,我需要知道如何查找注释。

是否存在我缺少的反射方法,还是有其他方法?

例如,我希望能够在类中找到以下注释:

/**
 * @MyParam: myvalue
 */

2 个答案:

答案 0 :(得分:45)

您可以使用ReflectionClass::getDocComment执行此操作,例如:

function getClassAnnotations($class)
{       
    $r = new ReflectionClass($class);
    $doc = $r->getDocComment();
    preg_match_all('#@(.*?)\n#s', $doc, $annotations);
    return $annotations[1];
}

现场演示:http://codepad.viper-7.com/u8bFT4

答案 1 :(得分:9)

您可以使用getDocComment Reflection对象方法获取评论块。

如果您不想手动检索注释,可以使用Zend Framework Reflection或其他现有解决方案