Намек на тип переменной в Netbeans (PHP)



просто любопытно, есть ли способ в netbeans дать подсказки типа для регулярных переменных, чтобы intellisense поднял его. Я знаю, что вы можете сделать это для свойств класса, параметров функции, возвращаемых типов и т. д. но я не могу понять, как это сделать для обычных переменных. Это то, что действительно поможет в ситуациях, когда у вас есть метод, который может возвращать различные типы объектов (например, локатор услуга).



ex что-то вроде:



/**
* @var Some_Service $someService
*/
$someService = ServiceLocator::locate('someService');


, где используя $someService после этого netbeans предоставит все доступные методы, определенные в классе Some_Service.

482   5  

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.

enter image description here

по данным этот отчет об ошибке синтаксис изменится в 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

    Ничего не найдено.