2012-08-29 63 views
0

我正在使用PHPDocumentor2來記錄PHP項目。具有諷刺意味的是,PHPDoc的文檔不太詳細。我完全理解如何評論文件,類,函數和變量,但是如果在if語句中定義變量或常量,我應該如何評論它?評論phpdocumentor2是否語句

例子:

if ($foo==$bar) { 
    define('FOOBAR',$foo); 
} else if ($foo>$bar) { 
    define('FOOBAR',$bar); 
} else { 
    define('FOOBAR',$foo+$bar); 
} 

顯然,我不想加3個註釋,和文檔應真正解釋if語句所以邏輯上的docblock應該if語句開始之前去 - 這將在代碼視圖中最美觀 - 但docBlock必須在「define」之前立即在線。我可以把它放在第一個之前,但看起來很奇怪。

if ($foo==$bar) { 
    /** 
    * FOOBAR Definition. 
    * 
    * Value of FOOBAR. Yada yada. 
    * @var int 
    */ 
    define('FOOBAR',$foo); 
} else if ($foo>$bar) { 
    define('FOOBAR',$bar); 
} else { 
    define('FOOBAR',$foo+$bar); 
} 

任何想法?

回答

0

phpdoc2對@ignore行爲的期望可能與phpdoc1的不同。

在phpdoc1中,@ignore標籤實際上意味着「您看到下一段包含可文檔元素的代碼,只是忽略那段代碼」。這種行爲確實允許PandyLegend的示例與上面編寫的代碼+ docblocks完全相同。手冊的@ignore示例用法實際上也與PandyLegend的用例匹配(http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.ignore.pkg.html)。

從phpdoc2的行爲來看,我從使用PandyLegend的例子中看到,我認爲phpdoc2在想「你在下一段代碼中看到可記錄的元素?記錄它的名字,並在這整套文檔中完全忽略該元素」。

我的猜測是,這個問題真的只是一個不同的解釋而不是錯誤。

(https://github.com/phpDocumentor/phpDocumentor2/issues/583)