когда я использую 'новый' оператор для инстанцирования класса, 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();
И вы получите автозаполнение :
(source: pascal-martin. fr)
(Проверено на недавней ночной сборке netbeans)
Другим решением будет добавить docblock к объявлению вашего метода getInstance()
, чтобы указать, что он возвращает экземпляр класса Singleton
:
/**
* @return Singleton
*/
public static function getInstance() {
}
И тогда вы также получите автозаполнение :
(источник: pascal-martin. fr)