Есть ли способ сделать автозаполнение PhpStorm "идти глубже"? - PullRequest
6 голосов
/ 01 октября 2011

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

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

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

$object->getName();

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

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

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

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

Ответы [ 2 ]

9 голосов
/ 01 октября 2011

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

  * @return classOrInterfaceName

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

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

* 1008Чтобы обойти это, вы можете присвоить возвращаемое значение переменной и указать подсказку для этой переменной.Может быть, это не так удобно, но может помочь.
3 голосов
/ 05 октября 2011

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

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

...