0

我正在使用

/* @var $var Type */ 

NetBeans 通常可以自动完成代码中的方法和内容。我仍然认为它是一个非常有用的功能,但有时我得到的类对象扩展了一个类并实现了多个接口。或者我什至有一个可传递的类层次结构。

我不知道如何告诉 NetBeans 它将对所有这些接口和上层父类使用自动完成功能。

我当然想这样做,因为这些接口/类中的每一个都有专用的方法(在接口的情况下在某处定义......)

我试过这样的事情:

/* @var $var TypeA|\TypeB|\TypeC */

因为我看到 NetBeans 会为由于 switch/case 返回不同类对象的方法生成类似的文档。但这似乎只适用于 @return 符号。

我也试过

/* @var $var TypeA|TypeB */ 

也不工作...

在这种情况下,NetBeans 将自动完成最后一个被告知的类型,但不是两个/所有被告知的类的组合。

我如何记录以便我的自动完成功能按需要工作(我列出的所有类/接口的方法摘要)?

问候!

4

1 回答 1

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->

只要每个类都有一个前向属性声明,您就可以随意链接

$foo->class1->class2->class3->...

上面的代码需要 autoload() 函数来加载正确的类文件......

希望这对你有帮助!

于 2014-04-04T12:50:45.823 回答