PhpStorm Live Templates

Инструкция на английском jetbrains

Открыть настройки: Ctrl+Alt+S


В IDE PhpStorm есть два замечательных инструмента ускоряющих разработку веб-приложений - это Live Templates и File Templates.

Live Templates - это предустановленные фрагменты кода , которые можно использовать в любом файле приложения и при этом эти фрагменты используют динамические переменные. Для вставки такого фрагмента достаточно указать его короткое машинное имя и нажать Tab либо Enter.

File templates - это шаблоны файлов с заранее описанным кодом , которые позволяют избежать рутинной работы при добавлении однотипных файлов в проекты. Эти шаблоны также поддерживают переменные , как предустановленные самой IDE , так и свои собственные , которые можно заполнить в диалоговом окне при создании файла.

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

Live Templates

Для добавления нового Live Templates нужно в главном верхнем меню IDE выбрать File -> Settings и в раскрывшемся окне выбрать пункт "Live Templates". Далее, нажав на зеленый крестик в правом верхнем углу, выбираем пункт "Template Group", чтобы создать новую группу шаблонов. Называем новую группу "Drupal", чтобы далее там создавать шаблоны для вставки друпал кода.

drupal-live-templates1.png

Рассмотрим создание нового шаблона на примере создания конструктора формы , использующего 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) {
    }

drupal-live-templates2.png

Теперь при выделении строки с form_id , нажатии Ctrl+Alt+T , выбора необходимого шаблона по его имени из выпадающего списка , произойдет заполнение необходимого нам кода .
При этом комбинацию клавиш можно заменить выбором в меню пункта Code -> Surround with Live Template.

Следует также отметить то что , чтобы перед значением параметра-переменной вывести символ $ необходимо вставить два символа $ .
Кроме переменной $SELECTION$ в нашем примере есть также и другая переменная - $arguments$ , с помощью которой мы можем вводить дополнительные параметры в функцию описания формы.

После вставки кода то место , где находиться переменная будет подсвечено красной рамкой. Нам нужно будет заполнить значение переменной и при этом оно будет синхронно заполняться для всех вставок данной переменной в код. Значение переменной может быть установлено по умолчанию. После заполнения первой переменной нужно нажать Tab или Enter и курсор передвинется на позицию второго параметра и так далее, если они имеются .

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

drupal-live-templates3.png

drupal-live-templates4.png

Список предустановленных функций для 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);

drupal-file-templates1.png

В 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. На странице проекта есть инструкция по его установке. Там имеется много примеров и заготовок для шаблонов как фрагментов кода , так и шаблонов файлов. Их можно использовать для изучения возможностей шаблонов или же использовать их как готовые решения.

28 июля 2017, 07:14    33
Наверх