Намек на тип переменной в Netbeans (PHP)
просто любопытно, есть ли способ в netbeans дать подсказки типа для регулярных переменных, чтобы intellisense поднял его. Я знаю, что вы можете сделать это для свойств класса, параметров функции, возвращаемых типов и т. д. но я не могу понять, как это сделать для обычных переменных. Это то, что действительно поможет в ситуациях, когда у вас есть метод, который может возвращать различные типы объектов (например, локатор услуга).
ex что-то вроде:
/**
* @var Some_Service $someService
*/
$someService = ServiceLocator::locate('someService');
, где используя $someService после этого netbeans предоставит все доступные методы, определенные в классе Some_Service.
5 ответов:
одна строка-это все, что вам нужно:
/* @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. Надеюсь, это кому-то поможет!)
The
@propertyтег позволяет документировать магия PHP переменные-те, которые реализованы с помощью__get()и__set(). Тег должен использоваться в документации непосредственно перед определением класса:/** * Class Contact * @property string $firstName * @property string $lastName */ class Contact extends Model { ...эта нотация запускает автозаполнение, протестированное в Netbeans 8.1 и PhpStorm 2016.1.
по данным этот отчет об ошибке синтаксис изменится в NetBeans 9:
/* @var $variable VarType */ // vdoc1 (legacy syntax) /** @var VarType $variable */ // vdoc (new syntax)кроме того, стоит отметить, что вы можете добавить
[]к имени класса для указания массива объектов:/* @var $foos Foo[] */ $foos = // ... foreach ($foos as $foo) { // $foo will be hinted as Foo here }и не забудь
useзаявление, например,use Foo;
в 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"} */

Comments