PHP: ввод подсказок для полей с помощью Eclipse PDT

Используя Eclipse + PDT, я знаю, что вы можете указать возвращаемый тип метода или тип переменной внутри метода с помощью подсказок типа.

Как насчет полей класса? Могу ли я объявить тип поля, чтобы включить автозаполнение для этой переменной?

Я пробовал что-то в строках:

class MyClass {

  protected $Field; /* @var $Field MyType */

  ...

но это не работает.

Есть ли способ добиться автозаполнения полей класса с помощью Eclipse и PDT?

Благодарность,

Сильвио


person Silvio Donnini    schedule 15.04.2010    source источник


Ответы (2)


Да, есть! Просто поместите тип var перед объявлением, например:

/**
 * @var Type
 */
 protected $Field;

Убедитесь, что вы используете комментарии в стиле javadoc (/** , а не только /* ). Я нашел это, выбрав поле в представлении «Структура», а затем щелкнув правой кнопкой мыши> Источник> Создать комментарий элемента.

person greg0ire    schedule 31.05.2010
comment
У меня это работает, но я не вижу раздел Source › Generate. Есть ли какой-то другой плагин eclipse, который мне нужно установить, чтобы увидеть это?? - person Matt Connolly; 05.05.2011
comment
@Matt Connolly: я установил PDT все в одном, и он у меня есть, без специального дополнительного плагина. Какие записи вы видите, когда щелкаете правой кнопкой мыши элемент представления Outline? - person greg0ire; 05.05.2011
comment
@jsalvata: я тоже использую Indigo, и мне это подходит. Я использую PDT v3.0.0.v20110516-1100-77--84_23JBVgSVXO7XGJz0VLa9 - person greg0ire; 12.01.2012
comment
Работа над выпуском Neon.2 (4.6.2) - person Diogo Alves; 10.03.2017

И если вам это нужно для необъявленной локальной переменной, вы можете использовать

/* @var $varname vartype */

Это очень полезно, если вы перебираете массив объектов с помощью foreach.

Обратите внимание, что нам нужно ввести его с одной звездочкой /* и все в одну строку. Объявление должно быть помещено перед использованием переменной.

person Martin    schedule 12.09.2012
comment
Я не могу заставить это работать последовательно. Иногда это работает, а иногда просто нет. Кажется, я не могу найти шаблон для него. - person Erick Robertson; 20.02.2013
comment
Это очень хорошо работает для меня с моими собственными именами классов. Вы открыли более одного проекта одновременно? Это иногда сбивает с толку мое затмение. - person Martin; 10.06.2013
comment
Отличная функция! Хотя мне очень хотелось бы знать, почему они решили использовать версию с одной звездочкой, иметь другой порядок имени и типа, чем @param или другой @var, а также требуют имя, даже если вы его указали. прямо перед переменной... но, может быть, это просто для того, чтобы не сбить с толку PHP-программистов слишком большой согласованностью. - person Simon Lehmann; 11.09.2013
comment
@ErickRobertson: если вы только что объявили переменную никогда ранее не использовавшегося типа и добавили только намек на тип в комментарии, требуемого объявления use, вероятно, нет, и оно не будет добавлено автоматически. из комментария; а без этого PDT не может заставить подсказку работать. Временное решение: вне комментария введите ClassName и нажмите Ctrl-Пробел. Eclipse добавит ::, чтобы указать, что он распознал его как класс, и добавил объявление use. Теперь сотрите линию. Декларация останется. И комментарий будет работать. Проверено только что на Eclipse Kepler - person LSerni; 20.06.2014