PhpStorm Live Templates
В IDE PhpStorm есть два замечательных инструмента ускоряющих разработку веб-приложений - это Live Templates и File Templates.
Live Templates - это предустановленные фрагменты кода , которые можно использовать в любом файле приложения и при этом эти фрагменты используют динамические переменные. Для вставки такого фрагмента достаточно указать его короткое машинное имя и нажать Tab либо Enter.
File templates - это шаблоны файлов с заранее описанным кодом , которые позволяют избежать рутинной работы при добавлении однотипных файлов в проекты. Эти шаблоны также поддерживают переменные , как предустановленные самой IDE , так и свои собственные , которые можно заполнить в диалоговом окне при создании файла.
Давайте рассмотрим по порядку эти два инструмента , а также возможные варианты их использования для разработки друпал проектов.
Открыть настройки: Ctrl+Alt+S
Live Templates
Для добавления нового Live Templates нужно в главном верхнем меню IDE выбрать File -> Settings и в раскрывшемся окне выбрать пункт "Live Templates". Далее, нажав на зеленый крестик в правом верхнем углу, выбираем пункт "Template Group", чтобы создать новую группу шаблонов. Называем новую группу "Drupal", чтобы далее там создавать шаблоны для вставки друпал кода.
Рассмотрим создание нового шаблона на примере создания конструктора формы , использующего Form API Drupal.
В Live Templates уже есть две предустановленных переменных:
- $END$ - является индикатором места нахождения курсора после вставки шаблона
- $SELECTION$ - используется для так называемых surround templates, которые позволяют выделить строку в файле и после нажатия комбинации клавиш Ctrl+Alt+T и выбора необходимого шаблона ,
произойдет вставка кода шаблона , с заменой всех переменных $SELECTION$ на содержимое выделенной строки
Для создания шаблона конструктора формы воспользуемся переменной $SELECTION$ , чтобы потом в файле при необходимости можно было вводить form_id и при этом происходила вставка кода с уже описанными функциями создания формы, ее валидации и сабмита.
Создаем новый шаблон , заполняем его аббревиатуру (машинное имя шаблона ) , его описание , указываем используемый контекст для шаблона (в данном случае - PHP) , отмечаем чекбоксом пункт "Reformat according to style"(для применения используемого для проекта Coding Style) и в текстовую область вставляем следующий код :
/**
* $SELECTION$ form.
*
* @param $form
* @param $form_state
*/
function $SELECTION$($form, &$form_state$arguments$) {
$END$
return $form;
}
/**
* Validate callback for $SELECTION$ form.
* @param $form
* @param $form_state
*/
function $SELECTION$_validate(&$form, &$form_state) {
}
/**
* Submit callback for $SELECTION$ form.
* @param $form
* @param $form_state
*/
function $SELECTION$_submit(&$form, &$form_state) {
}
Теперь при выделении строки с form_id , нажатии Ctrl+Alt+T , выбора необходимого шаблона по его имени из выпадающего списка , произойдет заполнение необходимого нам кода .
При этом комбинацию клавиш можно заменить выбором в меню пункта Code -> Surround with Live Template.
Следует также отметить то что , чтобы перед значением параметра-переменной вывести символ $ необходимо вставить два символа $ .
Кроме переменной $SELECTION$ в нашем примере есть также и другая переменная - $arguments$ , с помощью которой мы можем вводить дополнительные параметры в функцию описания формы.
После вставки кода то место , где находиться переменная будет подсвечено красной рамкой. Нам нужно будет заполнить значение переменной и при этом оно будет синхронно заполняться для всех вставок данной переменной в код. Значение переменной может быть установлено по умолчанию. После заполнения первой переменной нужно нажать Tab или Enter и курсор передвинется на позицию второго параметра и так далее, если они имеются .
В настройках параметров шаблона , которые доступны по нажатию кнопки "Edit variables" , можно указать порядок заполнения параметров , значения их по умолчанию и функции, через которые можно пропустить значения параметров после их ввода либо функции заменяющие значения параметров.
Список предустановленных функций для Live templates:
Функция | Описание |
---|---|
clipboard() | Возвращает содержимое системного буфера обмена. |
user() | Возвращает имя текущего пользователя. |
underscoresToSpaces(string) | Возвращает строку передаваемую в параметр , заменяя в ней знаки подчеркивания на пробелы. |
underscoresToCamelCase(string) | Возвращает строку передаваемую в параметр приведенную в CamelCase стиль , убирая знаки подчеркивания и приводя к верхнему регистру символы , располагающиеся сразу после убранных символов подчеркивания. Если в параметре передается строка foo_bar, то функция возвратит fooBar. |
time() | Возвращает текущее системное время. |
lineNumber() | Возвращает текущий номер строки. |
firstWord(string) | Возвращает первое слово строки передаваемой в параметр. |
fileNameWithoutExtension() | Возвращает имя файла без расширения. |
fileName() | Возвращает имя файла , включая его расширение. |
decapitalize(string) | Приводит к нижнему регистру первый символ строки передаваемой в параметр. |
date() | Возвращает текущую дату в формате по умолчанию либо в указанном формате , к примеру date("m.d.y"). |
className() | Возвращает имя текущего класса |
capitalizeAndUnderscore(string) | Приводит к верхнему регистру все символы строки передаваемой в параметр и все пробелы заменяет на знак подчеркивания. |
capitalize(string) | Приводит к верхнему регистру первый символ строки передаваемой в параметр. |
Для дальнейшего описания описания создаваемой формы можно добавить шаблоны для вставки отдельных элементов формы.
Создадим для примера шаблон fildset элемента формы :
$form['$KEY/div>](
'#type' => 'fieldset',
'#tree' => $tree$,
'#title' => t('$title/div>),
'#description' => t('$description/div>),
'#collapsible' => $collapsible$,
'#collapsed' => $collapsed$,
)
Таким образом можно создать шаблоны для всех типов элементов форм , а также можно сделать шаблоны для имплементации хуков или же шаблоны для создания Ctools плагинов.
File templates
Для создания шаблона файла необходимо открыть в меню File -> Settings и выбрать "File and Code Templates".
Нажав на зеленый плюсик сверху , добавляем новый шаблон. Заполняем имя шаблона файла, расширение создаваемого файла и в текстовой области вставляем необходимый нам код .
Для примера создадим javascript файл , который позже сможем добавить в разрабатываемый модуль или тему. В файле вставим код с Drupal.behaviors.
(function ($) {
Drupal.behaviors.${behavior_name} = {};
Drupal.behaviors.${behavior_name}.attach = function(context, settings) {
// code
};
})(jQuery);
В File templates в отличии от Live templates переменные оборачиваются не в символ $ с двух сторон , а в фигурные кавычки с впереди стоящим символом $ .
В File templates есть предустановленные переменные , а значения пользовательских переменных , которые были использованы при создании шаблона , должны быть введены в диалоговом окне с формой при создании файла из шаблона.
Список предустановленных переменных для File templates:
- ${PROJECT_NAME} - имя текущего проекта.
- ${FILE_NAME} - имя созданного файла.
- ${USER} - имя текущего пользователя.
- ${DATE} - текущая системная дата.
- ${TIME} - текущее системное время.
- ${YEAR} - текущий год.
- ${MONTH} - текущий месяц.
- ${DAY} - текущий день месяца.
- ${HOUR} - часы текущего времени.
- ${MINUTE} - минуты текущего времени.
- ${PRODUCT_NAME} - имя продукта IDE (в данном случае PhpStorm).
- ${NAME} - имя функции или класса , в которые помещена переменная.
- ${NAMESPACE} - полное название текущего пространства имен.
- ${CLASS_NAME} - имя класса , в котором находится переменная.
На drupal.org есть проект https://drupal.org/project/phpstorm-templates , который представляет репозиторий, в котором хранятся предустановленные Live Templates и File Templates для PhpStorm. На странице проекта есть инструкция по его установке. Там имеется много примеров и заготовок для шаблонов как фрагментов кода , так и шаблонов файлов. Их можно использовать для изучения возможностей шаблонов или же использовать их как готовые решения.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()