corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

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

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

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.9-7.0

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

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans Пакет загрузки PHP
Комплект для разработчика на языке Java (JDK) 5 или 6

 

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

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

Шаблоны кода PHP в окне "Параметры" с выбором шаблона CLI

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

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

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

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

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

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

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

Раскрывающееся поле "Раскрыть шаблон по"

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

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

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

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

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

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

    Примечание. Имена меток-заполнителей более подробно рассматриваются в разделе Имя метки-заполнителя.

    Выбор имени функции конструктора после редактирования имени класса
  4. Отредактируйте имя функции или примите значение по умолчанию. Затем снова нажмите клавишу ВВОД. Курсор переместится в тело функции. В реальном сценарии после этого начинается кодирование функции и остального класса.

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

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

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

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

  1. Введите в блоке PHP файла PHP значение cla.
  2. Дождитесь открытия диалогового окна дополнения кода.
  3. Выполните поиск шаблона нового класса, рядом с которым указана аббревиатура (cls). Развернутый шаблон отображается в рамке PHPDoc.
    Диалоговое окно дополнения кода, в котором отображается шаблон нового класса
  4. Щелкните шаблон нового класса. В среде IDE выполняется его вставка в код.
  5. Имя класса метки-заполнителя (class_name) выбирается автоматически. Можно сразу указать требуемое имя класса, которое будет перезаписано для метки-заполнителя. После завершения ввода нажмите клавишу ВВОД. В среде IDE будет выбрано имя первой функции, которой в данном варианте является конструктор.
    Выбор имени функции конструктора после редактирования имени класса
  6. Отредактируйте имя функции или примите значение по умолчанию. Затем снова нажмите клавишу ВВОД. Курсор переместится в тело функции. В реальном сценарии после этого начинается кодирование функции и остального класса.

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

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

  • while
  • do
  • switch
  • if/elseif
  • try и catch
  • foreach
  • for
  • ob_start и ob_end_clean

Чтобы добавить шаблон вокруг кода, выберите код и откройте диалоговое окно "Окружение...". Для открытия диалогового окна "Окружение..." используйте сочетание клавиш ALT+INSERT или щелкните значок "Подсказка" "Подсказка".

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

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

    $b = 10;
    ? >
  2. Выберите строку $b = 10;.
    Выбор переменной $b = 10/li>
  3. Дважды щелкните значок "Подсказка" "Подсказка" или нажмите сочетание клавиш ALT+ВВОД. Откроется диалоговое окно "Окружение...".
    Открытие диалогового окна "Окружение..."
  4. Выберите "Окружение с помощью if{true){..."
    Диалоговое окно "Окружение..." с выбором "Окружение с помощью if(true)"
  5. В среде IDE строка $b = 10; будет окружена шаблоном if(true){... .
    Вставленный шаблон if (true)

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

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

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

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

Курсор без редактированияКурсор после редактирования

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

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

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

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

  1. В пустом блоке PHP введите for и нажмите сочетание клавиш CTRL+ПРОБЕЛ для открытия дополнения кода. Выберите шаблон итерации (аббревиатура iter) и щелкните его. В код будет вставлена новая итерация.
    Дополнения кода с выбранным шаблоном итерации
  2. В итерации в качестве параметров используются две переменных: $index и $array. Переменная $index выбирается для редактирования автоматически.
    Вставленная строка итерации с параметрами и выбором параметра $index для редактирования

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

    Вставленная строка итерации, в которой параметр $index изменен на $i
  3. Нажмите клавишу ВВОД. Будет выбран параметр $array.
  4. Нажмите клавишу ВВОД еще раз. Курсор переместится в тело метода итерации.

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

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

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

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

    $arr = array(new ArrayIterator($array()), new ArrayObject($array()));

    ? >
  2. После строки с объявлением массива $arr введите fore и с помощью дополнения кода вставьте шаблон foreach (аббревиатура: fore).
    Дополнение кода для вставки шаблона foreach
  3. Поместите курсор в тело функции foreach (для перемещения курсора можно дважды нажать клавишу ВВОД) и введите значение $value или введите только $ и выберите $value из дополнения кода.
    <?php

    $arr = array(new ArrayIterator($array()), new ArrayObject($array()));

    foreach ($arr as $value) {
    $value
    }

    ? >
  4. После $value введите ->. Дополнение кода обеспечивает корректные методы для переменной $value, значение которой можно получить из массива $arr.
    Дополнение кода для переменной $value, где $value — метод итератора массива

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

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

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

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

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

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

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


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


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

Развертывание шаблона кода

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

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

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

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

class ${ClassName} {

function ${__construct} {
${selection}${cursor}

}

}

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

Три фрагмента кода, определяющие перемещение курсора с имени метки-заполнителя в положение ${cursor}

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


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


${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) :

Фрагмент $a = false $b = 10

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

Развернутый шаблон $a=true и $b=10 с выбором условия $a=true для редактирования

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

Подсказка Описание
newVarName Значение параметра должно быть новым не использованным ранее именем переменной. Обычно используется вместе с подсказкой default.
default="" Значение параметра по умолчанию.
instanceof="" Тип переменной PHP, заданной параметром.
variableFromPreviousAssignment Значение параметра — ближайшая предшествующая переменная. Обычно используется вместе с подсказками instanceof и default.
variableFromNextAssignmentName Значение параметра — имя ближайшей переменной, присвоенной после шаблона кода. Обычно используется вместе с подсказкой default.
variableFromNextAssignmentType Значение параметра — тип ближайшей переменной, присвоенной после шаблона кода. Обычно используется вместе с подсказкой default.
editable=false Значение параметра невозможно отредактировать после развертывания шаблона.

Предварительно определенные параметры

В NetBeans существует ряд предварительно определенных параметров, которые можно использовать при создании шаблонов кода. Кроме того, в диспетчере шаблонов можно определить дополнительные параметры. Обратите внимание на то, что для изменения формата переменной ${date} существуют особые правила.

  • ${date}: вставка текущей даты в формате "Feb 16, 2008"
  • ${encoding}: вставка кодировки по умолчанию, например UTF-8
  • ${name}: вставка имени файла.
  • ${nameAndExt}: вставка имени файла вместе с расширением.
  • ${package}: вставка имени пакета Java, в котором создан файл. (только для Java)
  • ${time}: вставка текущего времени в формате "7:37:58 PM"
  • ${project.license}: поиск заголовка лицензии по значению (например, "CDDL") и вставка его в шаблон.
  • ${project.name}: вставка имени проекта.
  • ${project.displayName}: вставка отображаемого имени проекта.

Добавление определений параметров

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

Определение параметра:

  1. Выберите в строке меню среды IDE команды "Сервис" > "Шаблоны". Откроется диспетчер шаблонов.
    Диспетчер шаблонов с открытым местоположением User.properties
  2. Разверните категорию "Другой". Дважды нажмите кнопку "Свойства". В редакторе откроется файл User.properties.
  3. Определите параметр. Например, задайте параметр ${user} для добавления собственного имени в создаваемые шаблоны. Синтаксис будет выглядеть следующим образом:
    user=LorumIpsum@mycompany.com

    При развертывании шаблона кода все экземпляры ${user} в этом шаблоне будут заменены на "LorumIpsum@mycompany.com".

  4. Добавьте все необходимые дополнительные параметры с использованием синтаксиса name=value.

При определении параметров используется язык шаблона Java FreeMarker. Для получения подробных сведений перейдите на вики-страницу NetBeans по FreeMarker.

Форматирование параметра ${date}

Переменная ${date} имеет тип String, а не Date. Для изменения формата ${date} необходимо изменить ее тип на Date. Например, чтобы отображался только год, введите в шаблоне кода:

${date?date?string("yyyy")} 

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

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

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

  1. Выберите команды "Средства" > "Параметры" ("NetBeans > Параметры" в системе Mac), перейдите к функциям редактора и откройте вкладку "Шаблоны кода".
    Шаблоны кода PHP в окне "Параметры" с выбором шаблона CLI
  2. Нажмите кнопку "Создать", расположенную справа от таблицы шаблонов. Откроется диалоговое окно "Новый шаблон кода". Введите аббревиатуру для шаблона и нажмите кнопку "ОК".
    Диалоговое окно "Новый шаблон кода" с запросом аббревиатуры шаблона
  3. В таблицу шаблонов кода будет добавлена новая строка. Она содержит только введенную аббревиатуру. Курсор будет автоматически расположен на вкладке "Расширенный текст". Код шаблона можно ввести прямо на этой вкладке.

    Примечание. Синтаксис развернутого текста шаблона кода описан в разделе Синтаксис шаблона кода PHP.

    Ввод развернутого текста нового шаблона

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

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

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

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

Язык: HTML
Аббревиатура: php
Развернутый текст:
<?php echo ${cursor}   ?>

Окно "Параметры" с новым фрагментом PHP в шаблоне HTML

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

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

Язык: PHP
Аббревиатура: joomdef
Развернутый текст:
defined('_JEXEC')
or die('Restricted access');
${cursor}

Диалоговое окно "Параметры" с новым шаблоном кода joomdef

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

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

Язык: PHP
Аббревиатура: my_con
Развернутый текст:
$$${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}

Новый шаблон кода для соединения с MySQL

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

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

Язык: PHP
Аббревиатура: zf_act
Развернутый текст:
public function ${functionName}Action () {
${selection}${cursor}
}

Новый шаблон кода для действия Zend

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

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

Язык: PHP
Аббревиатура: zf_element
Развернутый текст:
$$${ELEMENT newVarName default="element"} = new Zend_Form_Element_Submit('submit', array('label' => 'Send data to server'));  
$$this->addElement($$${ELEMENT});
${cursor}
Новый шаблон кода для вставки элементов Zend Framework в формы ZF

 


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

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

Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для PHP с помощью IDE NetBeans можно в списке рассылки