我正在使用
/* @var $var Type */
然后,NetBeans通常可以自动完成代码中的方法和内容。 我仍然觉得它是一个非常有用的功能,但有时我会得到它的对象 类扩展一个类并实现多个接口。 或者我甚至有一个传递类层次结构。
我不知道告诉NetBeans它应该使用自动完成的方法 所有这些接口和上层父类。
我想这样做当然每个接口/类都得到了 专用方法(在接口的情况下定义...)
我试过这样的事情:
/* @var $var TypeA|\TypeB|\TypeC */
因为我看到NetBeans将为返回的方法生成类似的文档 由于开关/外壳而产生的不同类对象。但这似乎只适用于 @return表示法。
我也试过
/* @var $var TypeA|TypeB */
也不行......
NetBeans将在这种情况下自动完成最后一次告知Type,但不是两个/所有告知类的组合。
我如何记录所以我的自动完成工作符合要求(我列出的所有类/接口的方法摘要)?
问候!
答案 0 :(得分:1)
如果我理解正确,那么您需要通过PHP代码链提示。
问题是netbeans无法知道对象究竟是什么;除非你告诉它。解决方案是在对象声明中使用 @property 命令,以转发类型定义对象成员,无论是类还是接口。
/**
@property classMyClass1 $clsMyClass1
@property classMyClass2 $clsMyClass2
*/
class baseClass{
public $clsMyclass1;
public $clsMyClass2;
public function __construct() {
$this->clsMyClass1 = new classMyClass1();
$this->clsMyClass2 = new classMyClass2();
}
}
$foo = new baseClass();
现在,当您在netbeans中键入代码时,它将知道在您上次输入的对象上显示的提示
$foo->clsMyClass1->
只要每个类都有一个前向属性decleration,你可以根据需要链接
$foo->class1->class2->class3->...
上面的代码需要autoload()函数来加载正确的类文件....
希望这能帮到你!