2009-08-30 138 views
3

如何描述PHP函數的參數和返回類型(getter/setter)?有效描述PHP函數

我需要告訴我的主持人返回類型並列出每個函數的參數。 我有數百個函數,所以這成爲問題,因爲我需要爲每個修訂版都這樣做。

我目前使用以下步驟

  1. ack-grep "function " > /tmp/functions 2。在Vim中:
    • %s/\d//g, %s/{//, %s/://g
    • '%s的/.* PHP/\ü&/
    • 然後把大寫文件名的每個文件的功能列表中的開頭
    • 放功能。一個文件和參數到另一文件,使得linenumbers匹配
    • 創建第三文件你寫要麼settergetter爲相應線路
  2. paste -d"&" /tmp/{functions,functions_param,functions_type}
  3. 加乳膠格式每個組的每個文件
+0

謝謝您的回答! – 2009-08-30 07:35:24

回答

8

使用類似phpdoc的功能。

基本上你添加特殊註釋代碼:

/** 
* A sample function docblock 
* @global string document the fact that this function uses $_myvar 
* @staticvar integer $staticvar this is actually what is returned 
* @param string $param1 name to declare 
* @param string $param2 value of the name 
* @return integer 
*/ 
function firstFunc($param1, $param2 = 'optional') { 
    static $staticvar = 7; 
    global $_myvar; 

    return $staticvar; 
} 

,它會自動爲它生成的HTML文檔。

基本上,這背後的想法是讓程序員的生活更輕鬆,並且允許編寫內聯API文檔,而不必花費大量時間。

有一些IDE也能理解這一點,並且會在您使用它時顯示文檔。例如,函數:

/** Retrieve the action key 
* @return string 
*/ 
function isValid($value) { 
    .... 
} 

這顯示在Zend Studio的:http://static.zend.com/topics/code-assist.png

特別是如果你使用像這樣的IDE(還有其他人,除了那個的Zend做),你可能會發現你自然記錄每個功能和參數,因爲它可以幫助你,而你編碼反正。

+0

我在一個文件中有很多功能。 **如果我將註釋塊放在每個函數的開頭,這樣我不需要在單獨的文件中具有這些函數,這是否工作?** – 2009-08-30 07:25:07

+0

是的。您還可以評論變量,類和定義。 – gregmac 2009-08-30 07:33:00

4

phpdoc。以加兩個數字的和函數並返回結果爲例:

/** 
* Adds up two int numbers 
* @param int $x the first number to add 
* @param int $y the second number to add 
* @return int the result of the operation 
*/ 
function my_sum ($x, $y) 
{ 
    return $x+$y; 
}