2011-10-18 75 views
7

建議的方法是記錄函數或方法參數,其值應該是一個預定義的常量?到目前爲止,我使用常量的數據類型,稍後我會添加一些解釋。如何記錄一個需要一個常量的參數

如:

<?php 

class Foo{ 
    const METHOD_GET = 'get'; 
    const METHOD_POST = 'post'; 

    /** 
    * Load a new foo 
    * 
    * @param string $method HTTP method to use (either Foo::METHOD_GET or Foo::METHOD_POST) 
    */ 
    public function load($method=Foo::METHOD_POST){ 
     // ... 
    } 

    /** 
    * Sort current foo 
    * 
    * @param int $sort_order Sort order (either SORT_ASC or SORT_DESC) 
    */ 
    public function sort($sort_order=SORT_ASC){ 
     // ... 
    } 
} 
+0

看起來好像沒什麼問題因爲儘管我可能寧願有兩個方法'post()'和'get()'和sortAsc()和'sortDesc()'或者使http請求和排序策略的外部對象可以通過Foo。 – Gordon

+1

這裏是關於這個主題的討論:https://github.com/phpDocumentor/phpDocumentor2/issues/557 – artspb

回答

5

既然你可以使用已知的類作爲dataype在param和return標籤中,我也希望你可以使用已知的常量。當您想要指定多個類型選項時,只需使用管道分隔列表。修改你的例子:

/** 
* Load a new foo 
* 
* @param Foo::METHOD_GET|Foo::METHOD_POST $method HTTP method to use 
*/ 
public function load($method=Foo::METHOD_POST){ 
    // ... 
} 

因爲在這種情況下,數據類型是已知內部到該級價值,它甚至可能沒有類名前綴的工作:

* @param METHOD_GET|METHOD_POST $method HTTP method to use 
+0

我一直在測試幾個IDE和phpDocumentor本身。顯然,它們都不會對param類型做任何特殊處理(例如創建鏈接或提供自動完成列表)。所以我想沒有標準的方法來做到這一點,我選擇的任何方法都不會造成任何傷害。我會考慮你的想法。 –

-2

Here有關如何記錄不斷使用PHPDoc的

常數/定義位於信息是指在PHP同一

+0

對不起,但這不是我的問題:我想記錄一個函數參數。 (和const/define是相似的,但並不等同於你的建議。) –

+0

好吧,我找到了你的東西[這裏](http://stackoverflow.com/questions/3892063/phpdoc-class-constants-documentation) – user973254

+1

這是同一個問題的另一個答案。我很樂意澄清我的問題的任何部分都不清楚,但請首先仔細閱讀。 –

相關問題