2011-09-01 97 views
4

有人建議我「使用代碼完成」,並且我意識到雖然我的IDE有代碼完成,但它不能識別大多數從CakePHP框架繼承的方法和變量,最明顯的是Helper方法爲意見。我正在使用PhpED,但它的代碼完成應該像在Eclipse和其他編輯器中一樣工作。IDE中的CakePHP的代碼完成

我跟着this的建議無濟於事;我創建了一個helpers.php文件,其中包含所有幫助器的定義並將其包含在項目中,但代碼完成仍然不能與Helpers一起使用。

我認爲問題的一部分是馬克的故事的文章是從舊版本的蛋糕(我是蛋糕1.3),所以我更新了助手的定義看起來是這樣的:

$this->Form = new FormHelper(); 

但有任何視圖仍然沒有代碼完成。有什麼辦法可以做到這一點?除了Helpers之外,我真的很喜歡完成像Model-> find()這樣的函數,但這些都不起作用。

回答

1

對於PhpED,您必須執行以下操作才能爲$ this啓用Autocompletion。

比方說,你要使用$這在控制器這樣的事情

$這個 - >項目 - >國家 - > getCountryName($ countryId)

首先添加此PHPDoc的類定義

/** 
* @property-read Project $Project 
*/ 
class ProjectsController.... 

現在打字$這個 - 標記之前>如預期的項目應該工作。 接下來是項目模型類。

在這裏添加如下代碼,類定義之前再次

/** 
* @property-read Country $Country 
*/ 
class Project extends AppModel 

現在$這個 - >項目 - >國家 - > getCountryName($ countryId)的作品。由於PhpEDs Autocompletion按字母順序排序,因此該方法不是100%,因此任何以A或B開頭的類都將顯示在國家/地區模式的方法之前。

2

正如你可能已經注意到幾個工作代碼完成腳本那裏你總是需要把它們放到作用域。 含義: 您需要用它們應該使用的類來包裝它們。 至少適用於組件和模型等。 對於幫助程序來說這更困難,因爲它們在視圖範圍內,它不直接可用/可見視圖/佈局中的IDE。 我使用應用助手作爲範圍。無論如何都適合我。更正確的是View類。

無論哪種方式,對於幫手來說,可能都不是一個簡單的方法。不過,大多數IDE應該選擇它。

例如我的(對於phpdesigner): http://www.dereuromark.de/tag/code-completion/

但其他類似。

0

這不是你的問題的答案。

我會推薦gedit,帶詞完成插件。雖然不是IDE級別的「代碼完成」插件,但它在從源文件中提取單詞並使用它們填充其單詞列表方面做了非常棒的工作。它幾乎適用於任何框架和任何語言,因爲這種構建單詞列表的有機方法。 (無恥地插入到我的博客,有很多關於gedit如何成爲最佳編輯器的提示和技巧:http://davidsouther.com/2011/08/gedit-tips-tricks/