2013-05-11 31 views
0

正如問題中所述,通過使用CodeIgniter PHP MVC框架,我應該如何使MODELS中的函數在控制器中可用與下拉或建議框彈出,而你打字?如何編寫PHP函數使其可用於整個IDE(PhpStorm)

對於模型文件夾爲例,我有一個名爲content_model.php文件:

... 
function getItems($cat_id = NULL, $limit = NULL, $offset = NULL, $ordering){ 

    ... 

} 
... 

所以,當我'打字任何控制器類$this->content_model->getItems(,我希望有一個彈出窗口出現這樣的這樣的:getItems($cat_id = NULL, $limit = NULL, $offset = NULL, $ordering)

有什麼建議嗎?對不起,我可能不知道準確的詞語來描述我的問題。

+1

您需要爲IDE提供有關控制器類中'$ this-> content_model'類型的提示。請參閱['@ var'](http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.var.pkg.html)和['@ property'](http://manual.phpdoc.org/ PHPDoc中的HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.property.pkg.html)。 – DCoder 2013-05-11 11:03:22

+0

@DCoder - IDE本身的PHPDoc還是我應該做一些特別的事情? – aspirinemaga 2013-05-11 11:15:59

+1

看看我之前評論中的鏈接。您需要將PHPDoc註釋添加到您的控制器類,以便PHPStorm可以知道'$ this-> content_model'的類型。 (另外,混合下劃線和camelCase('content_model'和'getItems')不是一個好主意。選擇一種樣式或其他。) – DCoder 2013-05-11 11:21:49

回答

2

在您的控制器類中,添加正確的PhpDoc,例如;

class MyController { 

    /** 
    * @var ContentModel (this is the name of your Content-model class) 
    */ 
    protected $content_model; 

} 

如果$content_model屬性是在運行時(例如$this->{$propname} = new ContentModel();)加入,添加這樣的PHPDoc的;

/** 
* @property ContentModel $content_model 
*/ 
class MyController { 
    // your code here 
} 
+0

你能告訴我什麼是「在運行時添加」的意思嗎? – aspirinemaga 2013-05-11 18:43:10

+0

我的意思是如果你沒有明確定義屬性;一些框架'附加'一個新的屬性,而不明確定義它;例如'$ this-> someNew物業='東西';'。如果你不使用它,只需忽略我的答案:) – thaJeztah 2013-05-11 23:57:35

0

我沒有使用過PHPStorm,但是在Netbeans中,文檔註釋必須添加到彈出的自動提示框中。我期望與其他全面的IDE類似。

/** 
* Describe what the function does... 
* 
* @param int $cat_id Describe $cat_id... 
* @param int $limit Describe $limit... 
* @param int $offset Describe $offset... 
* @param type $ordering Describe $ordering... 
*/ 
function getItems($cat_id = NULL, $limit = NULL, $offset = NULL, $ordering) 
{ 
    // code logic 
} 
+0

不能在PhpStorm中工作:(但是感謝'doc comments'術語 – aspirinemaga 2013-05-11 06:06:22