使用singleton检索对象而不是new运算符时netbeans自动完成?

时间:2010-05-09 05:35:01

标签: php netbeans

当我使用'new'运算符来实例化一个类时,netbeans没有问题来自动完成对象的成员。

$instance = new Singleton();
$instance-> // shows test() method

但是当我使用单例来检索对象时,它无法自动完成检索对象中的成员。

getInstance代码如下所示:

public function test() {
    echo "hello";
}

public static function getInstance() {
if ( ! is_object(self::$_instance)) {
    self::$_instance = new self();
    self::$_instance->initialize();
}
return self::$_instance;
}

所以我用:

$instance = Singleton::getInstance();
$instance-> // no autocompletion!

有没有人有同样的问题?

我该如何解决它?

谢谢!

1 个答案:

答案 0 :(得分:12)

在分配之前,您可以添加注释以指明$instance的类型:

/* @var $instance Singleton */
$instance = Singleton::getInstance();


你会得到自动完成功能:

http://extern.pascal-martin.fr/so/question-2796730-netbeans.png

(最近每晚建立的netbeans测试)



另一种解决方案是将docblock添加到getInstance()方法的声明中,以表明它返回Singleton类的实例:

/**
 * @return Singleton
 */
public static function getInstance() {

}


然后,您还将获得自动完成功能:

http://extern.pascal-martin.fr/so/question-2796730-netbeans-2.png