IDE中CakePHP的代码完成

IDE中CakePHP的代码完成,php,cakephp,ide,cakephp-1.3,Php,Cakephp,Ide,Cakephp 1.3,有人建议我“使用代码完成”,我意识到,虽然我的IDE有代码完成功能,但它无法识别从CakePHP框架继承的绝大多数方法和变量,尤其是视图的帮助器方法。我使用的是PhpED,但它的代码完成应该和eclipse和其他编辑器中的一样有效 我听从劝告,但毫无结果;我创建了一个helpers.php文件,其中包含了所有helpers的定义,并将其包含在项目中,但代码完成仍然无法与helpers一起工作 我认为部分问题在于Mark Story的帖子来自旧版本的cake(我在cake 1.3上),因此我更新了

有人建议我“使用代码完成”,我意识到,虽然我的IDE有代码完成功能,但它无法识别从CakePHP框架继承的绝大多数方法和变量,尤其是视图的帮助器方法。我使用的是PhpED,但它的代码完成应该和eclipse和其他编辑器中的一样有效

我听从劝告,但毫无结果;我创建了一个helpers.php文件,其中包含了所有helpers的定义,并将其包含在项目中,但代码完成仍然无法与helpers一起工作

我认为部分问题在于Mark Story的帖子来自旧版本的cake(我在cake 1.3上),因此我更新了助手的定义,如下所示:

$this->Form = new FormHelper();

但是仍然没有任何视图的代码完成。有什么办法可以让这一切顺利进行吗?除了帮助程序外,我还希望完成Model->find()等函数,但这些函数也不起作用

正如您可能已经注意到的,在一些工作代码完成脚本中,您总是需要将它们放入范围中。 意思是: 您需要用它们应该在其中使用的类来包装它们。 至少对于部件和型号等。 对于帮助者来说,这更困难,因为他们将处于视图范围内,而视图/布局中的IDE无法直接使用/可见。 我使用应用程序助手作为作用域。反正对我有用。更正确的方法是查看类

无论哪种方式,都可能没有一种简单易行的方法来帮助他们。不过,大多数IDE都应该选择它

e、 g.矿山(针对PHP设计人):


但是其他的都是相似的。

这不是你问题的答案


我建议使用gedit和wordcompletion插件。虽然不是IDE级别的“代码完成”插件,但它在从源文件中提取单词并使用这些单词填充单词列表方面做得非常出色。它“只适用于”几乎任何框架、任何语言,因为这种构建单词列表的有机方法。(无耻地插入我的博客,其中有很多关于gedit如何成为最好的编辑器的提示和技巧:)

对于PhpED,您必须执行以下操作才能启用$this的自动完成

假设您希望在控制器中使用$this来执行类似的操作

$this->Project->Country->getCountryName($countryId)

首先在类定义之前添加这个PhpDoc标记

/**
* @property-read Project $Project
*/
class ProjectsController....
/**
* @property-read Country $Country
*/
class Project extends AppModel
现在键入$this->Project应该可以按预期工作。 接下来是项目模型类

在这里,再次在类定义之前添加以下代码

/**
* @property-read Project $Project
*/
class ProjectsController....
/**
* @property-read Country $Country
*/
class Project extends AppModel
现在$this->Project->Country->getCountryName($countryId)可以工作了。该方法不是我所希望的100%,因为PhpEDs自动完成按字母顺序排序,所以任何以A或B开头的类都将显示在国家模式的方法之前