Netbeans PHPDoc локальная переменная не работает

Я пытаюсь документировать свой код чаще, и сейчас я пишу класс и хочу, чтобы он был полностью задокументирован. Однако по какой-то странной причине документация по локальным переменным (конечно, с PHPDoc) не работает..

Я получил это:

/**
 * A function for question
 * @param string $theVar The var to put in local var $aVar.
 */
public function theFunction($theVar) {
    /** @var string This is new local var, should have documentation but hasn't... */
    $aVar = $theVar;
}

Поэтому, когда я набираю 'the' и нажимаю пробел, и перехожу к своей функции в Netbeans, она показывает документацию по функции.

Но когда я набираю "aVa" внутри функции, нажимаю пробел и перехожу к моей переменной, появляется сообщение "PHPDoc not found".

Я знаю, что в этом случае это не будет проблемой, но в большой функции с большим количеством кода это может быть полезно. Однако по какой-то причине это не работает, и я понятия не имею, почему.

3 ответа

Решение

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

Вы можете использовать тег @var для документирования "Типа" свойств, иногда называемых переменными класса. Примеры

class Foo
{
  /** @var string|null Should contain a description */
  protected $description = null;
}

Даже составные утверждения могут быть задокументированы:

class Foo
{
  /**
   * @var string $name        Should contain a description
   * @var string $description Should contain a description
   */
  protected $name, $description;
}

Это должно работать внутри локальной переменной. Просто изучаю PHPDoc, но я использую его в PHPStorm, и он работает до тех пор, пока вы явно не включите имя локальной переменной в документацию.

вставьте это в вашу IDE:

<?php
    /** @var int This documentation is for $aVar. */
    $aVar = 5;

    /** @var int This documentation is for $bVar. */
    $bVar = 10;

    if ($bVar !== $aVar) {
        echo "False";
    }

Это другой твик для Netbeans. Вы должны удалить один *,

/* @var int This documentation is for $bVar. */
$bVar = 10;

В версии Netbeans 8.2 у вас есть шаблон: vdoc для быстрого выполнения:

/* @var $$${VARIABLE variableFromNextAssignmentName default="variable"} ${VAR_TYPE variableFromNextAssignmentType default="ClassName"} */
Другие вопросы по тегам