2010-11-19 22 views
3

我已經開始使用doxygen來從我的PHP代碼生成文檔。我注意到在生成的輸出中有兩個圖 - 繼承和協作。我知道繼承之一,但由於閱讀手冊合作一個激起了我的興趣:PHP Doxygen協作圖

如果COLLABORATION_GRAPH和HAVE_DOT標記設置爲YES,那麼doxygen的 將產生出直接的每個文檔類圖和 類與其他記錄類的間接實現依賴關係(繼承,包含和 類引用變量)。

我從該描述中得到的印象是組合關係也應該由協作圖表示,但它總是與繼承一樣。

有什麼我可以做的,以暗示Doxygen我想在這張圖中出現的東西?它只是不適用於PHP?

回答

0

我從來沒有試圖生成doxygen的協作圖,但我相信你記錄你的代碼是這樣的:如果省略的docblock doxygen的可能無法識別$ B是B型的

class B {} 

class A { 
    /** 
    * @var B 
    */ 
    private $b; 
} 

和因此不會在協作圖中包含B.

+0

我已經評論過我的代碼,因爲它對Eclipse有很大的幫助。不幸的是,協作圖沒有任何用處。 – Shabbyrobe 2010-12-09 11:36:38

2

難道是因爲你正在使用它的類沒有太多的除了繼承協作圖顯示?

你在複合類上試過嗎? (包含其他類的成員對象的類)

在這些情況下(至少使用C++),它生成了代表各種關係的複雜顏色編碼圖。

+0

這正是問題所在 - 我已經記錄了這些關係,它應該顯示組合,但它不會。 – Shabbyrobe 2010-12-25 06:51:58

+0

你認爲這可能是Doxygen的PHP解析器中的一個錯誤嗎? – bittwiddler 2011-01-09 02:41:21

+0

我相信這是Doxygen的PHP解析器(我使用doxygen 1.7.4測試過)中缺少的功能; Doxygen似乎永遠不會爲任何集體成員提供任何文檔,因此它從未發現某個成員是對另一個集體的引用。我猜想,一旦Doxygen解析器學習如何收集類成員文檔(特別是用@var聲明的成員類型),就會開始工作。 – 2011-12-14 07:32:36