Есть ли способ сделать автозаполнение PhpStorm «глубже»?

В PhpStorm, если я создаю объект, тогда у меня есть все автоматическое завершение работы над этим объектом:

$object = new MyClass(); $object->getNa... 

Будет ли автоматическое завершение

 $object->getName(); 

Пока все хорошо, но если я получу объект через первый метод, то автозаполнение не будет работать на этом.

 $car->getDriver()->getNam... 

Покажет пустой список. Метод getDriver имеет свой тег PHPDoc @return, установленный на «Драйвер», хотя и в некоторых других IDE, поэтому он работает, чтобы получить правильное автоматическое завершение.

Интересно, есть ли какая-то настройка, которую я пропустил где-то, или если PhpStorm не предлагает такой расширенный автозапуск?

Функция getDriver() нуждается в соответствующих типах-подсказках для возвращаемого значения (docblock функции):

  * @return classOrInterfaceName 

Обычно этого достаточно, чтобы IDE «пошла глубже». Я уверен, что Phpstorm поддерживает это, но я не являюсь пользователем Phpstorm.

Позаботьтесь о том, чтобы файл с интерфейсом / классом находился в рамках проекта или ссылался на него.

В качестве работы вы можете назначить возвращаемое значение переменной и ввести тип этой переменной. Может быть, это не удобно, но может помочь.

Убедитесь, что только одно определение класса Driver существует во всех файлах проекта. Это важно для текущих версий PhpStorm

см. http://youtrack.jetbrains.net/issue/WI-2202 и http://youtrack.jetbrains.net/issue/WI-2760