переменные-члены и подсказка типа @var phpdoc

#php #eclipse #phpdoc #type-hinting

#php #eclipse #phpdoc #подсказка типа

Вопрос:

Я использовал встроенные объявления @var для подсказок типа PHP, чтобы использовать прогнозирование и переход по ссылкам в Eclipse, но какова структура, когда это переменная-член, как в примере ниже? (приведенное ниже, похоже, не работает)

 /* @var $this->obj AbcObj */
$this->obj = Factory::get(...);
 

* Предположим, что на заводе может быть создано большое разнообразие типов объектов.

Ответ №1:

В объявлении класса, которое $this представляет, если вы объявили $obj как переменную класса, поместите в нее docblock:

 class Foo
{
    /**
     * @var AbcObj
     */
    $obj = null;
}
 

Это должно дать вам именно то, что вам нужно. Эта встроенная /** @var вещь была чем-то, что эволюционировало в дикой природе, чтобы придать такое поведение локальным неклассовым переменным, основанным на желании автозаполнения, которое существует для переменных класса.