Установка и настройка PHP CodeSniffer

Установка и настройка PHP CodeSniffer

PHP CodeSniffer - это скрипт, который проверяет PHP (также JavaScript и CSS) файлы на наличие нарушений для определенного стандарта кодирования. Является очень важным инструментом разработки, помогает сделать Ваш код чистым и последовательным. Также помогает предотвратить некоторые общие семантические ошибки, допущенные разработчиками.

Содержание

Инсталляция PHP Code Sniffer

Для установки Code Sniffer у Вас уже должен быть установлен PHP на той же машине, на которой установлен PHPStorm. Вы можете установить PHP отдельно, скачав для Windows по ссылке[2] или же установить Drush (содержит PHP) для Windows. Также PHP входит в состав таких программ как: Denwer, OpenServer, Wampserver, Acquia Dev Desktop, XAMPP и т.д.
Если Вы не знаете в какой директории расположен PHP, откройте командную строку и введите

1
where php.exe

Итак, если у Вас не установлен Drush настоятельно рекомендую это сделать. Для этого Вам необходимо скачать[3] его с гитхаба со страницы релизов. Далее будут приведены настройки исходя из того, что у Вас уже установлен Drush.
Перейдите в директорию установки Drush в папку PHP (у меня это C:\Program Files (x86)\Drush\Php\).
Запускаем файл go-pear.bat. Появится окно командной строки и на все предложенные вопросы жмем ENTER.
go_pear_bat
После запуска go-pear.bat файла в папке PEAR должно появится множество папок и файлов.
Далее необходимо вызвать командную строку и перейти в директорию C:\Program Files (x86)\Drush\Php\ или же если у Вас открыт Total Commander (и Вы уже находитесь в нужной директории) достаточно в его командной строке вести cmd и нажать ENTER для вызова командной строки Windows.
totalcmd
Вводим команду по установке PHP_CodeSniffer.

1
pear install PHP_CodeSniffer

После установки Code Sniffer обратите внимание на существование следующих папок и файлов:

  • файл phpcs.bat в директории С:\Program Files (x86)\Drush\Php\.
  • папка CodeSniffer в директории С:\Program Files (x86)\Drush\Php\PEAR\PHP\.

Установка стандартов кодирования Drupal

Следующий шаг - необходимо скачать стандарты кодирования для Drupal. Скачиваем модуль Coder и распаковываем его. В папке модуля нас интересует папка Drupal, которая находится в директории coder\coder_sniffer\. Эту папку необходимо скопировать в директорию C:\Program Files (x86)\Drush\Php\PEAR\PHP\CodeSniffer\Standards\.
Теперь нам нужно включить Code Sniffer в PHPStorm и указать исполняемый файл (тот самый phpcs.bat). Для этого Вам нужно пройти на вкладку Конфигурация, щелкнув по кнопке config или через меню File → Settings. В окне настроек выбираем вкладку PHP → Code Sniffer и указываем путь до нашего файла phpcs.bat.
phpcs_location
Проверяем корректную работу нажатием на кнопку Validate. Если Вы получаете ошибку как на рисунке ниже - ошибка в указании пути до php.exe. Необходимо отредактировать файл phpcs.bat, внеся небольшие изменения.
php_codesniffer_error
Если Вы откроете phpcs.bat любым текстовым редактором, то увидите последнюю строку примерно такую:

1
".\php.exe" -d auto_append_file="" -d auto_prepend_file="" -d include_path="'c:\Program Files (x86)\Drush\Php\pear'" -f "c:\Program Files (x86)\Drush\Php\phpcs" -- %*

Убираем .\ перед php.exe и сохраняем изменения. В итоге у нас должно получиться так:

1
"php.exe" -d auto_append_file="" -d auto_prepend_file="" -d include_path="'c:\Program Files (x86)\Drush\Php\pear'" -f "c:\Program Files (x86)\Drush\Php\phpcs" -- %*

Проверяем правильность внесенных изменений - снова жмем на кнопку Validate. Следующее сообщение свидетельствует о том, что мы все сделали правильно.
php_codesniffer_valid

Связываем Code Sniffer со стандартами кодирования

Следующий шаг - необходимо указать в настройках Code Sniffer стандарты кодирования для Drupal. Для этого Вам нужно пройти на вкладку Конфигурация, нажав на кнопку config или чеерз меню File → Settings. В окне настроек выбираем вкладку Inspections и в списке PHP выбираем чекбокс PHP Code Sniffer Validation. В выпадающем списке Code standard выбираем Drupal. Если Вы кроме Custom ниче не видите, нажмите на кнопку “обновить” update_iconphp_inspections

Полезные советы

Code Sniffer будет проверять ваш код автоматически, однако, если Вы желаете запустить проверку вручную или проверить сразу весь проект, то Вам нужно выбрать в главном меню пункт Code → Inspect code. В окне настроек выбираем необходимые нам параметры.
specify_inspection_scope
Если в процессе работы у Вас возникают ошибки подобные этой,
php_code_sniffer_inspection_error
то это означает, что Code Sniffer не успевает справиться с анализом кода на странице и ему требуется больше времени. Для того, чтобы скорректировать время выполнения Code Sniffer Вам нужно пройти на вкладку Конфигурация, щелкнув по кнопке config или через меню File → Settings. В окне настроек выбираем вкладку PHP → Code Sniffer и изменяем параметр Tool process timeout, sec [1...30], например, на секунд 15.
php_code_process_timeout

Дополнительная информация по статье

  1. Версии программных продуктов, используемых в статье: PHPStorm 7.1, CodeSniffer 1.5.1
  2. http://windows.php.net/downloads/releases/ - версии PHP для Windows.
  3. https://github.com/drush-ops/drush/tags - страница релизов Drush.