В этой статье будем рассматривать настройку среды разработки (в случае нашей компании - это PhpStorm) для работы с Drupal. Если точнее, то разберёмся, как в данной IDE активировать встроенную поддержку Drupal API, задать стиль кодирования Drupal и настроить автоматическую проверку PHP кода на основе PHP Code Sniffer. Все настройки будем выполнять на базе операционной системы Linux Ubuntu 16.04.

Отмечу, что помимо вышеуказанных полезностей, PhpStorm умеет ещё в интеграцию с Drush, подскажет много полезного по Symfony для Drupal 8 и может подружиться с issue-трекером на drupal.org.

 

Настройка поддержки Drupal API

Выполнить данную настройку несложно. В PhpStorm переходим File -> Settings -> Languages & Frameworks -> PHP -> Drupal. Ставим галочку Enable Drupal integration, указываем путь, где установлен Drupal и выбираем версию. В случае локальной разработки в качестве пути установки указывается путь до самого проекта. В случае удалённой разработки не факт, что в проекте PhpStorm будут все нужные файлы, поэтому в настройках указывается путь до отдельной папки со всеми предварительно загруженными файлами Drupal.

PhpStorm интеграция Drupal

После того, как PhpStorm выполнит переиндексацию, разработчик получит доступ к подсказкам по хукам, сможет быстро посмотреть описание выбранного хука и все варианты его реализации в проекте.

 

Настройка Drupal Code Style

Здесь тоже всё просто, поскольку PhpStorm содержит предустановленный стиль кода для Drupal. Открываем File -> Settings -> Editor -> Code Style -> PHP. В правой части открывшихся настроек выбираем Set from... -> Predefined style -> Drupal и сохраняем изменения.

PhpStorm Drupal Code Style

На этом настройка завершена и теперь IDE сама будет следить за расстановкой переносов, отступов, открывающих/закрывающих скобок и других немаловажных вещей, основываясь на стандартах кодирования Drupal, а нажав Code -> Reformat Code, вы сможете автоматически отформатировать код в открытом файле согласно текущему стилю.

 

Настройка PHP Code Sniffer для автоматизированной проверки кода

Один из важных аспектов написания модуля или темы - соблюдение стандартов кодирования Drupal. Код, написанный по стандартам, легко понять, с ним легко работать и его приятно поддерживать. Ко всему прочему, стандарты кодирования гарантируют, что любой квалифицированный Drupal-разработчик сможет понять написанный вами код, а новичок не сможет допустить совсем уж глупую ошибку. Так как сами стандарты представляют собой большой объём данных, то держать их все в голове и следить за их соблюдением проблематично даже для опытных друпалеров. Очевидно, возникает желание автоматизировать данный процесс в среде разработки и не отвлекаться от написания кода. Благо, для этого есть все необходимые инструменты.

Для установки PHP Code Sniffer понадобится Composer. Если он у вас уже имеется, то переходите на второй шаг.

 

1. Установка Composer

Обновляем кэш менеджера пакетов.

$ sudo apt-get update

Устанавливаем необходимые зависимости. Нам нужен curl для загрузки самого Composer и php-cli для его установки и запуска. Пакет php-mbstring требуется для некоторых функций Composer, git для загрузки зависимостей проектов, unzip соответственно для распаковки zip-пакетов.

$ sudo apt-get install curl php-cli php-mbstring git unzip

Загружаем установщик Composer.

$ curl -sS https://getcomposer.org/installer -o composer-setup.php

Устанавливаем Composer глобально.

$ php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Проверяем корректность установки.

$ composer

 

2. Установка и настройка PHP Code Sniffer

Ставим пакет squizlabs/php_codesniffer глобально с помощью Composer. Во избежание ошибки, ставим версию "2.*".

$ composer global require "squizlabs/php_codesniffer=2.*"

В PhpStorm переходим File -> Settings -> Languages & Frameworks -> PHP -> Code Sniffer и открываем настройки локальной конфигурации.

Настройки Code Sniffer в PhpStorm

Локальная конфигурация Code Sniffer в PhpStorm

В поле path нужно указать системный путь до исполняемого файла phpcs. Узнать его расположение можно с помощью команд.

$ composer config --global home
$ composer config --global bin-dir

В нашем случае исполняемый файл располагается по адресу ~/.composer/vendor/bin/phpcs. После ввода пути в поле path можно выполнить проверку работоспособности PHP Code Sniffer с помощью кнопки Validate. Также можно задать максимальное количество отображаемых сообщений и время ожидания результата проверки кода, по истичении которого процесс проверки будет принудительно завершён.

Для включения проверки кода в PhpStorm идём File -> Settings -> Editor -> Inspections. В списке проверок для языка PHP находим PHP Code Sniffer validation, включаем его, выбираем проверяемый стандарт кодирования и вид отображаемых сообщений.

 

3. PHP Code Sniffer + Drupal

В списке стандартов кодирования для проверки вы не найдёте стандартов Drupal - они не поставляются в базовой установке PHP Code Sniffer, что логично. Нужные стандарты можно найти в модуле Coder. Собственно с версии 8.x это и не модуль уже.

Перво-наперво ставим Coder глобально с помощью Composer.

$ composer global require drupal/coder

После установки Coder будет доступен по адресу ~/.composer/vendor/drupal/coder. Далее делаем команду phpcs доступной глобально.

$ export PATH="$PATH:$HOME/.composer/vendor/bin"

Указываем PHP Code Sniffer, где искать стандарты кодирования Drupal.

$ phpcs --config-set installed_paths ~/.composer/vendor/drupal/coder/coder_sniffer

Выполнение данной команды должно вернуть Config value "installed_paths" updated successfully. Делаем проверку доступных стандартов кодирования.

$ phpcs -i

Если всё верно, в настройках PHP Code Sniffer в PhpStorm появятся новые стандарты - Drupal и DrupalPractice. Как правило, на постоянной основе используют первый стандарт. Второй будет полезен для обнаружения некоторых распространённых ошибок. В любом случае выбрать можно только один стандарт.

Стандарты PHP Code Sniffer в PhpStorm

Андрей Тымчук

Добавить комментарий