使用$ this->测试Eclipse自动完成

时间:2010-12-24 11:01:29

标签: php eclipse phpdoc

如果未在同一个php文件中定义此属性,我们如何才能对属性进行自动完成。

例如,使用ZF,我们可以在控制器中执行

$this->view->voiture = new My_Voiture();

在视图中,我们有一个变量$ this-> voiture,但我怎么能拥有自动完成功能呢?

我尝试/* @var $this->voiture My_voiture */而没有结果......

目前,我的答案是在视图中进行

/* @var $voiture My_Voiture */
$voiture = $this->voiture;

但我不喜欢它。你有更好的吗?

1 个答案:

答案 0 :(得分:0)

我认为,在原始来源中记录原始变量实际上是最好的方法。您在其他文件中查看的所有其他用法都应该通过在其一个来源记录来继承自动完成。

为了获得我期望的自动完成功能,我会做这些事情:

  • 在My_Voiture类中,确保您拥有适用于变量和方法的docblock。对于自动完成本身而言,这在技术上并不是必需的,但它将允许自动完成弹出窗口包含更多仅包含变量和方法的信息。
  • 在My_View类中,首先声明(未使用)$ voiture,我会将标识其类型的@var docblock放置为My_Voiture。这应该足以使其$ voiture变量的任何使用继承My_Voiture的属性。
  • 在My_Controller类中,首先声明(未使用)$ view,我会将标识其类型的@var docblock放置为My_View。这应该足以使其$ view变量的任何使用继承My_View的属性。

现在,在您希望自动完成$ this-> view-> voiture的代码文件中 - 如果它中没有任何内容表明$ this是My_Controller对象,那么Eclipse无处可去它试图识别$ this(然后是它的所有属性)。我认为我之前看到过一些MVC代码,因为很多“动态”属性依赖于像$$ foo这样的“变量变量”。