2017-03-24 43 views
0

我知道PHP ReflectionClass從PHP腳本獲取文檔評論。現在我遇到了數百個不使用類但只有簡單的公共函數的舊PHP腳本。如果我是對的,ReflectionClass不能在這裏使用?我的目標是提取每個文檔評論。例如。 test1.php包含以下行:如何從不使用類的PHP腳本中提取文檔評論?

<?php 
/** 
* some main comments here 
*/ 
...some php lines here... 

/** 
* function comment 
* Blah blah 
*/ 
function foo() 
{ 
...some php lines here... 
} 
...and more functions below each with comments 

?> 

所以我期望的輸出中會是一個表,如:

-------------------------------------------------- 
| Filename | FUNCTION | Comment     | 
-------------------------------------------------- 
| test1.php |   | some main comments here | 
| test1.php | foo() | function comment  | 
|   |   | Blah Blah    | 
+0

你有沒有嘗試一些文檔生成器? http://phpdox.de/或https://phpdoc.org/ – muescha

+0

Muescha,謝謝。還沒。如果你能進一步提示我,我將不勝感激:) – tatskie

回答

1

您可以使用ReflectionFunction

$functions = get_defined_functions(); 

foreach ($functions['user'] as $function) { 

    $reflection = new ReflectionFunction($function); 

    var_dump($reflection->getName()); 
    var_dump($reflection->getDocComment()); 
} 

其結果將是(如果你有隻有foo功能定義):

string(3) "foo" 
string(43) "/** 
* function comment 
* Blah blah 
*/" 
+0

Matei,如何或在何處指定文件test1.php?在我的情況下,我將有數百人將'test1.php'說成'test100.php'。 ReflectionFunction如何知道它正在處理哪個PHP文件?對不起,我沒有太多的文檔可以谷歌周圍。 – tatskie

+0

Matei,另外,在'test1.php'開始時評論「這裏的一些主要評論」呢?每一個PHP文件的開頭都有類似的評論。 – tatskie

+0

我必須標記你的答案是正確的,並且必須從http://stackoverflow.com/questions/2197851/function-list-of-php-file給Joachim。 – tatskie