如何在PHP中读取注释块?
我正在做一些自制的自动化文档,因为我有一个布局不太标准的代码库,我想知道读取PHP文件并获取注释块内容的最佳方法是什么。我能想到的唯一方法是打开文件并逐行读取,但我认为可能有一些内置的魔法可以为我解析文档,类似于反射函数 每个文件的基本布局如下所示:如何在PHP中读取注释块?,php,reflection,comments,Php,Reflection,Comments,我正在做一些自制的自动化文档,因为我有一个布局不太标准的代码库,我想知道读取PHP文件并获取注释块内容的最佳方法是什么。我能想到的唯一方法是打开文件并逐行读取,但我认为可能有一些内置的魔法可以为我解析文档,类似于反射函数 每个文件的基本布局如下所示: <?php // $Id$ /** * Here is this script's documentation, with information in pseudo-javadoc * type tags and whatnot. *
<?php // $Id$
/**
* Here is this script's documentation, with information in pseudo-javadoc
* type tags and whatnot.
*
* @attr something some information about something
* @attr etc etc etc
*/
// rest of the code goes here.
签出
要获取名为test.php
的文件中的所有注释,您需要执行以下操作:
$tokens = token_get_all(file_get_contents("test.php"));
$comments = array();
foreach($tokens as $token) {
if($token[0] == T_COMMENT || $token[0] == T_DOC_COMMENT) {
$comments[] = $token[1];
}
}
print_r($comments);
查看PHP5附带的,更具体地说是getDocComment()
:
PHP5附带了一个完整的反射
添加以下功能的API
逆向工程类、接口、,
功能和方法以及
扩展。此外
反射API还提供了
检索函数的文档注释,
类和方法
此外,根据代码库的大小,修改注释以适应语法可能会减少工作量,这似乎已经非常接近了。这确实是一个非常奇怪的布局,恐怕需要非常具体的输出。反射函数似乎只适用于函数、类、对象等。你能给它传递一个要解析的文件吗?+1 phpDocumentor,特别是如果代码已经是它的格式化程序。我认为这个答案可能会有所帮助