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

如何在PHP5对象中查找注释?,php,parsing,annotations,docstring,Php,Parsing,Annotations,Docstring,我希望能够在PHP5对象中实现自定义注释,并且希望通过构建自己的解析器来了解整个过程是如何工作的 不过,首先,我需要知道如何找到注释 是否有我缺少的反射方法,或者有其他方法 例如,我希望能够在类中找到以下注释: /** * @MyParam: myvalue */ 可以使用反射对象方法获取注释块 如果您不想手动检索注释,可以使用或其他现有解决方案您可以使用,例如: function getClassAnnotations($class) { $r = new Refl

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

不过,首先,我需要知道如何找到注释

是否有我缺少的反射方法,或者有其他方法

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

/**
 * @MyParam: myvalue
 */

可以使用反射对象方法获取注释块

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

您可以使用,例如:

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

实时演示:

如果文件中有多个注释,它会将它们全部捕获吗?
->getDocComment()
只获取与正在检查的对象关联的文档注释(该对象声明之前的docblock注释)。您还可以获取对象、类、方法、函数和属性的文档注释。@johnnietheblack您可以使用-仅获取指定方法的注释。啊,太酷了…因此我可以使用ReflectionClass获取类的文档注释,然后运行它的方法以获取它们的注释…@johnnietheblack您可以使用循环类方法返回ReflectionMethod对象数组,您可以使用它来获取函数注释。为什么不使用类似于doctrine注释的库呢?是最popular@DanFromGermany,
原则\Common\Annotations\AnnotationReder::getClassAnnotations()
似乎明确忽略了
@package
@method
之类的内容。我还从未见过如此多的
private
final
的用法阻止任何可能超越此限制的行为。有办法解决这个问题吗?