Шаблоны кода в IDE NetBeans для PHP

This tutorial needs a review. You can open a JIRA issue, or edit it in GitHub following these contribution guidelines.

Шаблона кода представляют собой написанные заранее фрагменты кода, предоставленные IDE NetBeans. Фрагмент можно вставить в код путем дополнения кода или с помощью ввода аббревиатуры шаблона с нажатием клавиши TAB. Также можно добавить соответствующие фрагменты PHP вокруг кода. Наконец, можно задать собственные шаблоны кода. В данном учебном курсе описывается использование шаблонов кода и приводятся варианты определения собственных шаблонов.

netbeans stamp 80 74 73
Figure 1. Содержимое этой страницы применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или материал Требуемая версия

IDE NetBeans

Пакет загрузки PHP

Комплект для разработчика на языке Java (JDK)

7 или 8

 

Заданные шаблоны кода PHP

Для просмотра шаблонов кода, определенных в NetBeans, выберите команду "Средства" > "Параметры" ("NetBeans" > "Параметры" для Mac), выберите функцию редактора и откройте вкладку "Шаблоны кода". Для просмотра шаблонов кода PHP выберите в раскрывающемся списке "Языки" пункт "PHP". Появится таблица с аббревиатурами шаблонов кода и расширенными текстами. При выборе шаблона кода в таблице на вкладке "Расширенный текст" отображается расширенный текст.

code template options

В примере на рисунке выбран шаблон кода нового класса ( cls) , а на вкладке "Расширенный текст" отображается развернутый шаблон. В следующем разделе описывается использование клавиши TAB для развертывания шаблона в коде.

Синтаксис нового шаблона кода класса ( cls ) описывается в разделе Синтаксис шаблона кода PHP.

Использование шаблонов кода PHP

Существует три способа вставки шаблонов в код PHP. Каждый из этих способов предназначен для соответствующих ситуаций. Существуют следующие способы:

После вставки шаблона в среде IDE можно отредактировать параметры в развернутом шаблоне кода.

Расширение шаблона кода путем ввода аббревиатуры с нажатием клавиши TAB

Снова откройте вкладку "Шаблоны кода" в диалоговом окне "Параметры". В нижней части этого окна расположено раскрывающееся поле для выбора сочетания клавиш для развертывания шаблона. Это сочетание клавиш пользователь нажимает после ввода аббревиатуры шаблона для развертывания шаблона кода. Клавиша TAB выбрана по умолчанию, но вместо нее можно задать другие сочетания клавиш.

expand template on

Далее в этом разделе предполагается, что в поле "Раскрыть шаблон по" по умолчанию выбрана клавиша TAB.

Если аббревиатура для шаблона также используется в дополнении кода, развернуть ее может быть сложно. В этом случае для вставки шаблона предпочтительно использовать дополнение кода.

Для развертывания шаблона кода нового класса с помощью ввода аббревиатуры с нажатием клавиши TAB выполните следующее:

  1. Создайте пустой файл PHP.

  2. В блоке PHP для этого файла введите текст cls и нажмите клавишу TAB. Будет развернут шаблон кода cls .

Внимание! Аббревиатуру необходимо ввести корректно! В случае ошибок при вводе шаблон не будет развернут.

expanding template with abb
  1. Имя класса метки-заполнителя ( class_name ) выбирается автоматически. Для перехода от одного заполнителя к другому можно использовать клавишу Tab. Можно сразу указать требуемое имя класса, которое будет перезаписано для метки-заполнителя. После завершения ввода нажмите ENTER. В среде IDE будет выбрано имя первой функции, которой в данном варианте является конструктор.

Имена заменителей описываются более детально в разделе Раздел имен заменителей.
select constructor name
  1. Отредактируйте имя функции или примите значение по умолчанию. Затем снова нажмите ENTER. Курсор переместится в тело функции. В реальном сценарии после этого начинается кодирование функции и остального класса.

Итоговое положение курсора определяется параметром ${cursor} . Этот параметр описывается в разделе Зарезервированные имена.

Вставка шаблона кода путем дополнения кода

Для вставки шаблона кода путем дополнения кода введите начало расширенного фрагмента (не сокращение шаблона). Откроется диалоговое окно дополнения кода, в котором будет отображаться фрагмент.

Для вставки шаблона кода нового класса путем дополнения кода выполните следующее:

  1. Введите в блоке PHP файла PHP значение cla .

  2. Дождитесь открытия диалогового окна дополнения кода.

  3. Выполните поиск шаблона нового класса, рядом с которым указана аббревиатура ( cls ). Развернутый шаблон отображается в рамке PHPDoc.

insert template with cc
  1. Выберите шаблон нового класса и нажмите Enter. В среде IDE выполняется его вставка в код.

  2. Имя класса метки-заполнителя ( class_name ) выбирается автоматически. Для перехода от одного заполнителя к другому можно использовать клавишу Tab. Можно сразу указать требуемое имя класса, которое будет перезаписано для метки-заполнителя. После завершения ввода нажмите ENTER. В среде IDE будет выбрано имя первой функции, которой в данном варианте является конструктор.

select constructor name
  1. Отредактируйте имя функции или примите значение по умолчанию. Затем снова нажмите ENTER. Курсор переместится в тело функции. В реальном сценарии после этого начинается кодирование функции и остального класса.

Добавление шаблона вокруг кода

Вокруг кода можно добавить следующие шаблоны PHP:

  • while

  • do

  • switch

  • if / elseif

  • try и catch

  • foreach

  • for

  • ob_start и ob_end_clean

Кроме того, можно создать новый шаблон, который будет окружать код, если шаблон включает в себя подсказку параметра allowSurround. (Выражаем благодарность за предоставленную информацию авторам блога + My Beloved PHP+.)

Чтобы добавить шаблон вокруг кода, выберите код и откройте диалоговое окно "Окружение…​". Чтобы открыть диалоговое окно 'Окружить…​', нажмите Alt-Enter или щелкните значок 'Подсказка' hint icon.

Для добавления шаблона if(true) вокруг кода выполните следующее:

  1. Создайте блок PHP с переменными $a = true и $b = 10 .

<?php$a = false;$b = 10;?>
  1. Выберите строку $b = 10;

selected variable
  1. Нажмите на значок 'Подсказка' hint icon или нажмите Alt-Enter. Откроется диалоговое окно "Окружение…​".

surround hint
  1. Щелкните Surround with if{true){…​

surround if true
  1. В среде IDE строка $b = 10; будет окружена шаблоном if(true){…​ .

inserted if true

В среде IDE в качестве условия оператора if автоматически вставляется ближайшая предшествующая допустимая переменная. В данном варианте используется переменная $a , поскольку $a является логическим значением, а условие оператора if(true){} подразумевает логическую переменную. Более того, если переменная, вставленная в среде IDE в условие, неправильна, это условие автоматически выделяется для редактирования. Это означает, что ввод корректной переменной можно начать сразу после вставки шаблона. В этом случае выбрать переменную можно с помощью дополнения кода.

. Шаблон if(true){} описывается подробно в разделе Параметр, определяемый подсказками.
change condition

Для выхода из условия оператора нажмите ENTER. Курсор переместится в соответствующее местоположение, в данном случае — в конец строки $b = 10; . Пользователь может отредактировать условие и нажать ENTER или принять автоматически подставляемое условие, после чего нажать ENTER. В любом случае курсор будет перемещен из условия в соответствующее местоположение.

cursor after not editing
cursor after editing

В следующем разделе редактирование параметров в развернутых шаблонах описано более подробно.

Изменение параметров в развернутых шаблонах

В разделах, посвященных вставке шаблонов в код, в среде IDE автоматически выбиралось имя класса для редактирования после развертывания шаблона нового класса. Также автоматически выбиралось имя условия для редактирования после развертывания шаблона if(true) . В данном разделе описаны другие возможности редактирования параметров в среде IDE в развернутых шаблонах.

Одновременное редактирование нескольких экземпляров параметра:

  1. В пустом блоке PHP введите for и нажмите сочетание клавиш CTRL+ПРОБЕЛ для открытия дополнения кода. Выберите шаблон итерации (аббревиатура iter ) и нажмите Enter. В код будет вставлена новая итерация.

iter cc
  1. В итерации в качестве параметров используются две переменных: $index и $array . Переменная $index выбирается для редактирования автоматически. (Для перемещения между параметрами используйте клавишу Tab.)

iteration1

Введите i . Все три экземпляра параметра $index изменятся на $i .

iteration2
  1. Нажмите Enter или Tab. Будет выбран параметр $array .

  2. Нажмите ENTER. Курсор переместится в тело метода итерации.

Функция реорганизации имен переменных в NetBeans позволяет изменить все экземпляры имени переменной путем редактирования только одного экземпляра. В данном разделе рассматривается ее использование для параметров шаблона.

Редактор PHP editor IDE NetBeans также помогает определить правильный метод для переменных.

Привязка переменной в шаблоне к корректному методу:

  1. В пустом блоке PHP введите следующий код:

<?php$arr = array(new ArrayIterator($array()), new ArrayObject($array()));?>
  1. После строки с объявлением массива $arr введите fore и с помощью дополнения кода вставьте шаблон foreach (аббревиатура: fore ).

cc foreach
  1. Поместите курсор в тело функции foreach (для перемещения курсора можно дважды нажать ENTER) и введите значение $value или введите только $ и выберите $value из дополнения кода.

<?php$arr = array(new ArrayIterator($array()), new ArrayObject($array()));foreach ($arr as $value) {$value}?>
  1. После $value введите . Дополнение кода обеспечивает корректные методы для переменной $value , значение которой можно получить из массива $arr .

value method cc

Синтаксис шаблона кода PHP

IDE NetBeans обеспечивает шаблоны кодов для всех поддерживаемых языков. Некоторые элементы синтаксиса являются общими для всех языков. Другие — специфичны для определенных языков. В данном разделе рассматривается наиболее релевантный общий синтаксис шаблонов, а также специфичный синтаксис шаблонов PHP.

Шаблон кода PHP может содержать код PHP и параметры шаблона. Шаблон PHP может содержать только код PHP, только параметры или код и параметры одновременно.

В синтаксисе параметров шаблона кода используется знак доллара $ , за которым следует определение параметра в фигурных скобках {…​} . В рамках этого синтаксиса параметры шаблона могут принимать четыре формы:

В следующих разделах рассматриваются все формы параметров шаблона кода.

${VARIABLE...} `` Иногда отображается шаблон кода PHP во фрагментах, где синтаксис состоит из трех знаков доллара, после которых стоят фигурные скобки ``${…​} . В этом случае шаблон кода содержит переменную и ее имя. Здесь знак доллара пропущен, и в синтаксисе присутствует двойной знак доллара `` , за которым следует параметр имени переменной ``${VARIABLE...}`` . Например, шаблон кода ``catch ${Exception} ${exc} расширяется как [examplecode]# catch Exception $exc #.

Имя метки-заполнителя

В самом простом случае параметр шаблона кода является произвольным значением метки-заполнителя. При развертывании шаблона это имя метки-заполнителя выбирается в среде IDE для редактирования.

Например, в шаблоне нового класса (cls) , который в данном учебном курсе приводится в качестве примера в разделах Заданные шаблоны кода PHP и Расширение шаблона кода путем ввода аббревиатуры с нажатием клавиши TAB. Развернутый текст шаблона нового класса начинается с class ${className} . В данном случае class — это код PHP, а ${className} — параметр. Этот параметр является произвольным значением метки-заполнителя для имени класса. При развертывании шаблона в среде IDE ${className} преобразуется в class_name . Предполагается, что class_name является только лишь значением метки-заполнителя, и это значение автоматически предлагается для редактирования.

expanding template with abb

Зарезервированные имена

В среде IDE резервируются два имени параметра, используемые в качестве указаний по обработке.

  • ${cursor} определяет местоположение курсора после завершения редактирования всех автоматически выбранных значений в развернутом шаблоне.

  • ${selection} определяет положение для вставки содержимого, выбранного редактором. Этот параметр используется так называемыми "шаблонами выбора", которые всегда отображаются в качестве подсказок при выборе текста в редакторе. Если шаблон включает параметр ${selection} , он всегда относится к тому же местоположению, что и ${cursor} .

Например, обратитесь еще раз к шаблону нового класса (cls) , который рассматривается в разделах Заданные шаблоны кода PHP и Расширение шаблона кода путем использования аббревиатуры с нажатием клавиши Tab данного учебного курса. Он содержит два параметра-заполнителя имени, ${ClassName} и $__construct . В теле функции содержатся параметры ${cursor} и ${selection} .

class ${ClassName} {function ${__construct} {${selection}${cursor}}}

После развертывания шаблона параметр метки-заполнителя class_name выбирается автоматически (1). Нажмите Enter, и заполнитель __construct будет выбран автоматически (2). Другие значения для редактирования отсутствуют. Нажмите Enter еще раз, и указатель мыши переместится в положение, заданное параметром ${cursor} в тексте шаблона (3).

cursor position changes

Параметр, заданный с помощью подсказок

Параметр может содержать произвольное описательное имя В ВЕРХНЕМ РЕГИСТРЕ и одну или несколько подсказок.

${PARAMETER_NAME hint1[=value] [hint2...hint n]}

Имя не отображается в коде. Однако оно необходимо при многократном использовании параметра в шаблоне кода. В этом случае параметр определяется только один раз, после чего может подставляться по имени. Например, в следующем шаблоне кода параметр ${CONLINK} определяется только один раз, а затем два раза подставляется по имени.

$$${CONLINK newVarName default="link"} = mysql_connect('localhost', 'mysql_user', 'mysql_password');  if (!$$${CONLINK}) {    die('Could not connect: ' . mysql_error());  }  echo 'Connected successfully';  mysql_close($$${CONLINK});  ${cursor}

Подсказки в среде IDE используются для расчета значения параметра шаблона при развертывании шаблона кода. Рассмотрим шаблон if(true) , описанный в данном учебном курсе в разделе, посвященном добавлению шаблона вокруг кода. В этом шаблоне развернутый текст выглядит следующим образом:

if (${CONDITION variableFromPreviousAssignment instanceof="boolean" default="true"}) {${selection}${cursor}}

Проверьте параметр ${CONDITION variableFromPreviousAssignment instanceof="boolean" default="true"} . Этот параметр задает условие оператора if . Поэтому ему присваивается имя CONDITION. Первой подсказкой будет variableFromPreviousAssignment , а второй - instanceof="boolean" . Сочетание этих двух подсказок в среде IDE говорят о необходимости поиска ближайшей логической переменной, которая присвоена в коде, предшествующем шаблону кода. Добавьте третью подсказку default="true" , и параметр будет определять условие "если значение ближайшей предшествующей логической переменной верно".

Например, если строка $b = 10 в следующем фрагменте кода окружена шаблоном кода if(true) :

selected variable

в среде IDE выполняется поиск ближайшей логической переменной, присвоенной ранее, результатом которого является $a , после чего создается оператор if с условием $a [=true]. Условие автоматически выбирается для редактирования, и программист PHP может изменить $a на другую переменную или на !$a .

inserted if true

В следующей таблице перечислены подсказки, используемые в шаблонах кода PHP, с описаниями.

Подсказка Описание

newVarName

Значение параметра должно быть новым не использованным ранее именем переменной. Обычно используется вместе с подсказкой default .

1521 (по умолчанию)

Значение параметра по умолчанию.

instanceof=""

Тип переменной PHP, заданной параметром.

variableFromPreviousAssignment

Значение параметра — ближайшая предшествующая переменная. Обычно используется вместе с подсказками instanceof и default .

variableFromNextAssignmentName

Значение параметра — имя ближайшей переменной, присвоенной после шаблона кода. Обычно используется вместе с подсказкой default .

variableFromNextAssignmentType

Значение параметра — тип ближайшей переменной, присвоенной после шаблона кода. Обычно используется вместе с подсказкой default .

editable=false

Значение параметра невозможно отредактировать после развертывания шаблона.

allowSurround

Позволяет использовать шаблон для окружения кода.

Создание собственных шаблонов кода

Пользователи могут создать собственные шаблоны кода в IDE NetBeans. В данном разделе описывается создание шаблонов кода и их синтаксис, а также предлагаются некоторые полезные шаблоны.

Для создания шаблона кода выполните следующее:

  1. Выберите команды "Средства" > "Параметры" ("NetBeans > Параметры" в системе Mac), перейдите к функциям редактора и откройте вкладку "Шаблоны кода".

code template options
  1. Нажмите 'Создать'. В результате откроется диалоговое окно 'Создание шаблона кода'. Введите аббревиатуру для шаблона и нажмите кнопку "ОК".

new abb
  1. В таблицу шаблонов кода будет добавлена новая строка. Она содержит только введенную аббревиатуру. Курсор будет автоматически расположен на вкладке "Расширенный текст". Код шаблона можно ввести прямо на этой вкладке.

Описание синтаксиса расширенного текста шаблона кода см. в разделе Синтаксис шаблона кода PHP.
new abb text

Далее описаны некоторые варианты создания собственных шаблонов кода PHP. Предложить собственные варианты можно на форуме пользователей PHP.

Вариант использования: вставка PHP в HTML

При необходимости частой вставки фрагментов PHP в блок HTML можно создать шаблон кода HTML для вставки кода PHP без ввода <?php ?> .

Следующий шаблон кода используется для вставки в HTML оператора PHP echo .

Язык: HTML

Аббревиатура:

php

Развернутый текст:

[source,php] ----

<?php echo ${cursor}  ?> ----

uc php

Вариант использования: Joomla

Шаблоны кода можно использовать для платформы PHP в IDE NetBeans, особенно для платформ, в которых отсутствует встроенная поддержка. Далее приведен шаблон кода, разработанный для Joomla.

Язык: PHP

Аббревиатура:

joomdef

Развернутый текст:

[source,php] ----

defined('_JEXEC')or die('Restricted access');${cursor} ----

uc joomdef

Вариант использования: соединение с MySQL

Разработчикам PHP часто требуется установить соединение с базой данных MySQL. Это можно сделать с помощью шаблона кода. Переменная, присваиваемая соединению с MySQL, содержит имя метки-заполнителя link . Обратите внимание на использование трех знаков доллара $$$ . На самом деле это двойной знак, который при развертывании преобразуется в один знак с последующим указанием параметра для имени переменной.

Язык: PHP

Аббревиатура:

my_con

Развернутый текст:

[source,php] ----

${CONLINK newVarName default="link"} = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!${CONLINK}) {    die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($$${CONLINK}); ${cursor} ----

uc mycon

Вариант использования: действие в контроллере Zend

Вместо использования мастера NetBeans для создания действия для вставки действия в контроллере Zend Framework, например indexController{} , можно использовать шаблон кода.

Язык: PHP

Аббревиатура:

zf_act

Развернутый текст:

[source,php] ----

public function ${functionName}Action () {${selection}${cursor} } ----

uc zfact

Вариант использования: элемент формы Zend

Этот шаблон используется для вставки элемента в форму Zend. Он применяется после создания формы с помощью команды Zend create form <name> .

Язык: PHP

Аббревиатура:

zf_element

Развернутый текст:

[source,php] ----

${ELEMENT newVarName default="element"} = new Zend_Form_Element_Submit('submit', array('label' => 'Send data to server')); this→addElement($$${ELEMENT}); ${cursor} ----

uc zelement

 

Дополнительные сведения

Для получения дополнительных сведений о технологии PHP на сайте netbeans.org можно воспользоваться следующими материалами:

Для отправки комментариев и предложений, получения поддержки и новостей о последних разработках, связанных с PHP IDE NetBeans присоединяйтесь к списку рассылки users@php.netbeans.org.