Я использую NetBeans в качестве своей IDE. Всякий раз, когда у меня есть код, который использует другую функцию (обычно фабрику) для возврата объекта, обычно я могу сделать следующее, чтобы помочь с подсказкой:
/* @var $object FooClass */
$object = $someFunction->get('BarContext.FooClass');
$object-> // now will produce property and function hints for FooClass.
Однако, когда я использую свойство объекта для хранения этого класса, я немного не понимаю, как сделать то же самое, поскольку trying to use @var $this->foo or @var foo
не будет выполнять подсказку:
use Path\To\FooClass;
class Bar
{
protected $foo;
public function bat()
{
$this->foo = FactoryClass::get('Foo'); // Returns an instance of FooClass
$this->foo //does not have hinting in IDE
}
}
Я пробовал в docblock для класса или используя встроенные комментарии выше protected $foo
или где foo установлен для экземпляра.
Единственный обходной путь, который я нашел до сих пор, это:
public function bat()
{
$this->foo = FactoryClass::get('Foo');
/* @var $extraVariable FooClass */
$extraVariable = $this->foo;
$extraVariable-> // now has hinting.
}
Мне бы очень хотелось, чтобы подсказка была общеклассовой, поскольку многие другие функции потенциально могут использовать $this->foo
, и было бы полезно знать методы и свойства класса.
Наверняка есть более простой способ...