如何获取文件的DocComment?

时间:2012-07-23 20:20:49

标签: php string parsing documentation

该文件如下所示:

<?php
/**
 *  Title
 *
 *  Description
 *  bla bla..
 *
 *  @since 1.0
 *  @author lolcat
 */





/**
 *  Some class..
 *
 *  @since 1.0
 */
class BlaBla{

}
..

我想从中获得第一个DocComment。用PHP可以吗?

反射似乎有这样的功能,但它只适用于类或函数,而不适用于文件:(

1 个答案:

答案 0 :(得分:4)

这种事情有一个基本的扩展。它被称为Tokenizer

使用token_get_all()功能。

返回数组中的每个标记都有它的id。有一些全局常量可以定义它们:http://www.php.net/manual/en/tokens.php

如果您使用PHP&gt; = 5.3:

$s = file_get_contents('tokexample.php');

$docblock = reset(array_filter(token_get_all($s), 
                  function($item) { 
                      return $item[0] == T_DOC_COMMENT; 
                  }));

echo $docblock[1];

/**
 *  Title
 *
 *  Description
 *  bla bla..
 *
 *  @since 1.0
 *  @author lolcat
 */

否则:

function filter($item) {
    return $item[0] == T_DOC_COMMENT;
}

$docblock = reset(array_filter(token_get_all($s), "filter"));

echo $docblock[1];