Как мне настроить NetBeans PHP auto DocBlock для методов и атрибутов?

#php #netbeans #documentation #docblocks

#php #netbeans #Документация #docblocks

Вопрос:

После создания метода я использую /**<enter> для генерации DocBlock. Он автоматически заполняет @param и @return для этой функции. Пример:

 /**
 *
 * @param type $str
 * @return type 
 */
public function strlen($str){
    return strlen($str);
}
  

Как я могу настроить генерируемый блок так, чтобы он также заполнял @author и заканчивался этим после /**<enter>

 /**
 *
 * @param type $str
 * @return type 
 * @author John Doe <john@doe.com>
 */
public function strlen($str){
    return strlen($str);
}
  

Спасибо

Комментарии:

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

2. Понятия не имею, НО в то же время вы могли бы использовать макросы для этого. У меня есть @copyright и @author макросы при блокировке классов. Я бы также предложил @author редактировать класс, а не каждый отдельный метод.

3. @Shadower856 За 2 года использования netbeans я даже не заметил возможностей макросов! Я использовал шаблоны кода, но они не будут работать за пределами областей кода .. отличный совет

4. @ShotgunToothpaste работает ли это также с динамическим содержимым, например, вставка текущей даты с использованием шаблона типа @today ?

Ответ №1:

Возможно, есть лучший способ сделать это, но вот что я использовал: в разделе Инструменты> Параметры> Редактор> Шаблоны кода есть несколько предопределенных комбинаций для быстрой генерации кода. Одним из шаблонов по умолчанию в версии 7.0 является:

 vdoc<tab>
  

Это генерирует псевдодокблок и определение переменной. Вы можете заменить это и добавить новые, которые расширяются в любой текст, который вы хотите, очень похоже на сокращения vim. Вы можете найти больше об этом на сайте документации Netbeans:

http://netbeans.org/kb/docs/php/code-templates.html#using-templates

Ответ №2:

Я полагаю, что ответ, который вы ищете, будет найден здесь: Руководство по phpDocumentor

Я думаю, вы захотите взглянуть на переключатель командной строки —customtags.

Поэтому, скорее всего, когда вы перейдете в Tools -> Options -> «PHP» -> «PHPDoc», вы можете добавить этот переключатель командной строки —customtags в строку скрипта PHPDoc.

Я не пробовал это лично, но я поиграл с идеей использования NetBeans в сочетании с DocBlocks и phpDocumentor для «автоматического» создания большого количества полезной документации, не слишком напрягая остальных программистов. 😉

Здесь есть хороший видеоурок по настройке NetBeans для работы с phpDocumentor: Создание документации PHP с помощью NetBeans IDE 7.0

Ответ №3:

Чтобы включить надлежащее автозаполнение тега @author, просто перейдите в: Tools-> Templates-> PHP-> PHP Class, нажмите кнопку «Настройки» и раскомментируйте строку, начинающуюся с #user= . Теперь вы можете редактировать имя и адрес электронной почты, которые передаются в ваш комментарий к классу.

Комментарии:

1. Это работает для класса, который полезен, но не работает для функциональных блоков doc, которые запрашивает OP

Ответ №4:

Краткий ответ из разных источников: Нет, вы не можете редактировать шаблон, который мог бы добавить его для вас.

  1. Если вы все еще ищете аналогичную функцию, вы можете создать для нее макрос do, а затем привязать его к ярлыку (например, «Alt W»).

Чтобы создать макрос: Инструменты -> Параметры -> Редактор -> Макросы

Пример :

 Alt W => insert-break "/**" insert-break
  

Этот макрос помогает добавлять PHPDoc левой рукой, что ускоряет процесс. Вы можете сгенерировать все, что пожелаете, например, используя этот макрос, а затем поместить курсор в нужное место и затем добавить @author YOUR_NAME в конце комментария.


  1. Вы также можете указать общего автора вашего проекта, перейдя в: Инструменты -> Шаблоны; Нажмите «Настройки»

Добавьте строку :

 user=YOUR NAME <email.prefix at domain.extension>
  

Это добавит @author ко всем вашим новым определениям классов / интерфейсов.

Я надеюсь, что это поможет вам!