2010-07-27 31 views
1

我發現,在PHP如果我這樣做:的Doxygen和可視性關鍵詞在PHP

class Foo{ 

    /** 
    * Does something cool 
    * @return 
    * Always returns 1 
    */ 
     public function bar() { 
     return 1; 
     } 
    } 

的doxygen不會記錄成員函數「酒吧」

如果我參加了「公衆」關鍵字,它的確如此。有一些設置可以控制這個嗎?我在網上看了一眼,一無所知。

+0

我不知道Doxygen的第一件事,但PHPDoc的'@ return'標籤有不同的格式,並且總是在一行上:'@return int Always returns 1'。也許這種格式可能適合你? – Charles 2010-07-27 16:55:12

回答

0

因爲它是一個類的成員,所以你需要評論這個類,以便doxygen知道要在類中查找成員函數。 Foo類

/** 
* @class Foo 
* 
* The foo class is awesome 
*/ 

這裏之前做這樣的事情是我使用(正是你加上評論)產生下面的鏈接輸出的代碼。

<?php 

/** 
* @class Foo 
* 
* The foo class is awesome 
*/ 
class Foo{ 

    /** 
    * Does something cool 
    * @return 
    * Always returns 1 
    */ 
     public function bar() { 
     return 1; 
     } 
} 

?> 

http://raged.microsonic.org/test/html/classFoo.html

希望幫助,祝你好運!

在附註中,根據上述建議的海報列出你的var類型總是一個好主意(尤其是文檔)。我通常將每個@param和@return聲明爲某種變量類型(因爲我來自C++背景),但它在PHP中並非完全必要。在PHP中,你傾向於有許多「混合」的var類型,因爲在C++中不會發生這種類型。無論如何,祝你的項目好運!

+0

嗯,它必須是某種解析錯誤。我清除了所有的警告。在我真正的源代碼中,我確實評論過這個類,所以這不是問題。事實上,唯一被記錄的成員函數是__construct()方法。我將@return行改爲一行,這也沒有幫助。 – Aaron 2010-07-27 20:07:05

+0

基本上,我可以重現一個事實,即當visiblity關鍵字放在函數關鍵字之前,doxygen會停止記錄任何成員函數。即使它們都是「公開」的。如果我刪除所有關鍵字(公共,私人,受保護),doxygen會記錄我所有的功能。出於某種原因,我可以靜止。我將EXTRACT_ALL設置爲YES。 doxygen的版本是:doxygen-1.7.1,我從源碼構建的 我在網上找不到任何關於此的信息,我也找不到任何可以在配置文件中修復此問題的設置。 – Aaron 2010-07-28 01:34:43

2

原來我運行的是doxygen的錯誤版本。我的路上已經有了doxygen,它指向了1.3x。現在一切正常。