Просто любопытно, есть ли способ в netbeans давать подсказки типа для регулярных переменных, так что intellisense выбирает его. Я знаю, что вы можете сделать это для свойств класса, параметров функции, типов возврата и т. Д., Но я не могу понять, как это сделать для регулярных переменных. Это то, что действительно поможет в ситуациях, когда у вас есть метод, который может возвращать разные типы объектов (например, локатор сервисов).
ex что-то вроде:
/** * @var Some_Service $someService */ $someService = ServiceLocator::locate('someService');
Если впоследствии использовать $ someService, netbeans предоставит все доступные методы, определенные в классе Some_Service.
Единственная строка – это все, что вам нужно:
/* @var $varName Type_Name */
См. Эту статью в блоге PHP NetBeans: https://blogs.oracle.com/netbeansphp/entry/defining_a_variable_type_in
Я знаю, что это более старый вопрос, но я искал аналогичный ответ для Eclipse / Zend Studio, и это также решило его.
** Обратите внимание, что это должно быть на одной строке с открытием и закрытием явно в этом стиле …
/* @var $varName Type_Name */
Никаких других форматов …
/** * @var $varName Type_Name */
или…
// @var $varName Type_Name
казалось, работал вообще. Надежда помогает кому-то.
Вы хотите документировать эти досадные магические переменные? (Я сделал: этот вопрос в настоящее время является лучшим результатом для Google. Надеюсь, это поможет кому-то!)
Тег @property
позволяет документировать магические переменные php – реализованные с использованием __get()
и __set()
. Тег следует использовать в документации, непосредственно предшествующей определению класса:
/** * Class Contact * @property string $firstName * @property string $lastName */ class Contact extends Model { ...
Эта нотация запускает автозаполнение, протестированное в Netbeans 8.1 и PhpStorm 2016.1.
В netbeans 8.0.2 шаблон vdoc дает вам следующее:
/* @var $variable type */
Однако Netbeans не узнает об этом и не предоставит вам правильный список автозаполнения для ваших объектов. Вместо этого используйте это, как раз перед объявлением переменной:
/** @var objectType $varName */
Я не очень хорошо использовал шаблон vdoc для акций, особенно для переменных класса, которые будут использоваться в качестве объектов PDO или PDOStatement.
Одно из решений, которое я использую, – это входить в Инструменты / Параметры / Редактор / Шаблоны кода (с PHP выбранным как ваш язык) и добавить новый шаблон. Я назвал мой намек . Затем в расширенном тексте используйте следующий шаблон:
/** @var ${VAR_TYPE variableFromNextAssignmentType default="ClassName"} $$${VARIABLE variableFromNextAssignmentName default="variable"} */