2011-09-01 91 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/