当我使用“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!
有没有人遇到同样的问题?
我该如何解决?
谢谢!
最佳答案
您可以在分配之前添加注释以指示 $instance
是哪种类型:
/* @var $instance Singleton */
$instance = Singleton::getInstance();
你会得到自动完成:
(来源:pascal-martin.fr)
(使用最近每晚构建的 netbeans 进行测试)
另一种解决方案是在 getInstance()
方法的声明中添加一个文档 block ,以指示它返回 Singleton
类的实例:
/**
* @return Singleton
*/
public static function getInstance() {
}
然后,您还将获得自动完成功能:
(来源:pascal-martin.fr)
关于php - 使用单例而不是新运算符检索对象时 netbeans 自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2796730/