Альтернативный способ установки Code Sniffer
Опубликовано пт, 17/06/2016 - 02:04
PHP архивы с официального сайта[1] по умолчанию не содержат в себе репозиторий приложений и модулей PHP (Pear), необходимого для установки Code Sniffer. Кроме того, последние версии Drush (доступны в виде архивов), а также веб-серверы Denwer, Wampserver, Acquia Dev Desktop и т.д. не всегда имеют в своем инструментарии Pear. В связи с этим появилась необходимость обновить уже описанный в статье Установка и настройка PHP CodeSniffer процесс.
Содержание
- Установка PHP
- Процесс установка Pear
- Установка Code Sniffer
- Настройка Code Sniffer
- Потенциальные проблемы и их решения
Установка PHP
Скачиваем архив с официальной страницы загрузок PHP[2]. Распаковываем в нужную директорию (в моем случае это D:/_PHP). Необходимо, чтобы операционная система "видела" PHP, для этого путь к папке нужно прописать в системной переменной Path. Идем в свойства компьютера (Пуск→ Компьютер → Свойства).
На странице Просмотр основных сведений о вашем компьютере переходим по ссылке Дополнительные параметры системы.
В открывшемся окне находим вкладку Дополнительно и жмем кнопку Переменные среды. В секции Системные переменные ищем переменную Path и дописываем в нее путь до папки с распакованным PHP.
Сохраняем все изменения и перезагружаем компьютер. После перезагрузки запускаем командную строку и проверяем, что PHP подхватился.
1 |
php -v |
Если все прошло удачно, то будет выведена версия пхп
Процесс установка Pear
Для установки Pear необходимо запустить go-pear.bat, если таковой имеется в директории php. Если же его нет, то сохраняем содержимое ссылки[3] как файл go-pear.phar в директорию PHP.
Запускаем командную строку, переходим в директорию PHP и выполняем команду
1 |
php go-pear.phar |
Далее будет предложено ответить на несколько вопросов. Отвечаем на первые два (system/yes или local/yes), на остальные просто жмем ENTER. После установки папка PHP будет дополнена новыми файлами.
Теперь самое время проверить корректно ли установился pear. Для этого в командной строке выполняем (возможно понадобится перейти в папку pear)
1 |
pear |
В случае, если все хорошо, будет выведен список доступных команд.
Установка Code Sniffer
Команда установки снифера описана в пункте Инсталляция PHP Code Sniffer. Далее, по аналогии, качаем модуль coder[4], копируем папку с Drupal стандартами кодирования в папку D:\_PHP\pear\PHP\CodeSniffer\Standards\.
Настройка Code Sniffer
В связи с тем, что в PHPStorm 2016 изменился порядок расположения вкладок в settings, полный цикл настройки лишним не будет. В большинстве случаев он схож с уже описанным в вышеупомянутой статье.
В первую очередь, необходимо указать в шторме версию используемого PHP и путь к исполняемому файлу. Для этого нужно пройти на вкладку Конфигурация, щелкнув по кнопке или через меню File → Settings. В окне настроек выбираем вкладку Languages & Frameworks → PHP и выбираем из списка PHP language level версию PHP, которая была установлена.
Для поля Interpreter жмем на иконку
В открывшемся окне для поля PHP executable указываем путь до исполняемого файла PHP.
Если у вас появилось сообщение подобное этому
то, это означает что в директории PHP нет файла php.ini. Его можно скопировать с файла php.ini-development и переименовать в php.ini.
Далее в окне settings PHPStorm переходим по пути Languages & Frameworks → PHP → Code Sniffer.
Жмем на иконку и прописываем путь до phpcs.bat
Далее проверяем корректность веденных данных нажатием на кнопку Validate. Если все хорошо, то сообщение будет примерно таким
Сохраняем изменения. Остается последний этап - установить стандарты кодирования Drupal. Настройки выполнять согласно пункту Связываем Code Sniffer со стандартами кодирования
Потенциальные проблемы и их решения
После установки pear, на этапе проверки может появиться такое сообщение
В этом случае с помощью любого текстового редактора правим путь до php.exe в файле pear.bat
Исправляем относительный путь до php.exe
1 |
IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=.\php.exe" |
на абсолютный
1 |
IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=D:\_PHP\php.exe" |
Перезапускаем консоль и проверяем снова.
При проверке пути файла phpcs.bat в окне настройки Code Sniffer может появиться такое сообщение
Проблема в пути к php.exe. Открываем файл phpcs.bat любым текстовым редактором и меняем относительный путь в строке
1 |
if "%PHPBIN%" == "" set PHPBIN=.\php.exe |
на абсолютный
1 |
if "%PHPBIN%" == "" set PHPBIN=D:\_PHP\php.exe |
Сохраняем, возвращаемся в PHPStorm и проверяем снова.
При той же операции, возможно также появление такой ошибки
И снова проблема с относительным путем. Открываем файл phpcs, находим (если есть) и корректируем строку
1 |
include_once 'PHP/CodeSniffer/CLI.php'; |
до получения такого результата (абсолютный путь до CLI.php)
1 |
include_once 'D:/_PHP/pear/PHP/CodeSniffer/CLI.php'; |
Кроме того, вышеописанная проблема может быть вызвана некорректным подключением autoload.php в файле phpcs
1 |
include_once 'PHP/CodeSniffer/autoload.php'; |
заменяем на правильный путь до autoload.php, в моем случае это
1 |
include_once 'pear/PHP/CodeSniffer/autoload.php'; |
Дополнительная информация по статье
- http://php.net/ - официальный сайт PHP
- http://windows.php.net/download#php-5.6 - страница загрузок PHP для версии 5.6
- https://pear.php.net/go-pear.phar - содержимое go-pear.phar с официальной страницы pear
- https://www.drupal.org/project/coder - страница проекта coder на drupal.org
- https://pear.php.net - официальная страница pear
- Версии программных продуктов, используемых в статье: PHPStorm 2016.1, CodeSniffer 2.6.1, PHP 5.6.22
1 Комментарий
Tomas Votruba - пн, 30/10/2017 - 17:46
Hey, thanks for nice post!
Hey, thanks for nice post!
Just a tip: try composer for installing PHP_CodeSniffer, it's way easier and PEAR won't be supported in the near future.
Shameless plug: you might like this package - EasyCodingStandard