如何建立自己的phpdoc解析器?

时间:2019-05-09 12:02:45

标签: php parsing comments phpdoc

我想构建一个注释解析算法,将phpdoc标签信息存储到数组中。

在示例中,这是注释(我已经清理掉它没有那个*):

@author some name

@example any example ...
more examples

@title project title

现在,我想解析该评论。我已经编写了一种将行存储到这样的数组中的方法:

$commentLines = array_filter(array_map('trim', $this->getLines($comment)));

所以现在我想解析该数组中的所有行($ commentLines)。如果一行中包含 @ ,则应该对其进行验证。如果为true,则@后面的单词(例如'author')应获得标签的名称。之后,如果下一行包含@,则应再次进行验证。如果为true,则应该将第一个@和最后一个@之间的所有值(不带标记名(作者))存储到数组中。

最后,数组应如下所示:

$values = [
   'author'  => [
              'some name',
         ],
   'example' => [
              'any example ...',
              'more examples',
         ],
],

因此,如果有另一端,则解析器应获取之间的字符串。如果没有@,则该行也属于同一数组(也许我们可以使用array_combine方法)

0 个答案:

没有答案