Настройка PHP CodeSniffer для каждого проекта
Несколько лет назад я написал статью о настройке PHP CodeSniffer в Visual Studio Code (недавно я ее тоже обновил).
Но прошло четыре года с тех пор, как этот пост был первоначально написан, и за это время многое может измениться с точки зрения того, как мы пишем код.
Четыре года — это примерно эпоха Интернета, не так ли?
В любом случае, основные пункты этой статьи остаются в силе, но если вы работаете над множеством проектов, и некоторые из них требуют разных конфигураций, настроек и стандартов, то способ установки и настройки PHP CodeSniffer может отличаться от как вы настраиваете его на системном уровне.
Итак, если вы находитесь в таком положении, вот как вы можете настроить PHP CodeSniffer для каждого проекта с помощью Visual Studio Code.
PHP CodeSniffer для каждого проекта
В этой статье делается несколько предположений:
- Вы знакомы с Composer ,
- Вы знаете, как обращаться с рабочими пространствами в коде,
- Вы знакомы с PHP CodeSniffer (по крайней мере, на глобальном уровне),
- И вы знаете, как работать с расширениями кода .
Если вы не уверены ни в одном из них, просмотрите эту статью, а затем вернитесь. Я проведу вас через остальные.
1 Установите PHP CodeSniffer локально
Поскольку для разных проектов могут потребоваться разные наборы стандартов, я считаю полезным сохранить копию composer.json
и, естественно, composer.lock
для каждого проекта отдельно.
Это означает, что в корне моего проекта у меня есть composer.json
файл со всем, что мне нужно для данного проекта. В случае с этой статьей мне нужна копия PHP CodeSniffer.
Чтобы установить PHP CodeSniffer и последнюю версию стандартов кодирования WordPress на уровне проекта, я создам указанный выше файл в корне моего проекта, а затем включу следующее:
{
"require": {
"wp-coding-standards/wpcs": "2.3.0",
"squizlabs/php_codesniffer": "3.*"
}
}
В большинстве случаев этот файл будет намного сложнее, но вы получите общее представление о том, что вам нужно включить.
Затем запустите, composer install
и это создаст vendor
каталог в вашем проекте, который будет включать как стандарты кодирования WordPress, так и PHP CodeSniffer.
2 Настройте символические ссылки на локальные двоичные файлы
На этом этапе вам может оказаться полезным создать символическую ссылку на двоичные файлы для PHPCS и PHPCBF, чтобы не конфликтовать с тем, что вы запускаете на глобальном уровне.
Для этого в корне проекта вы можете ввести в своем терминале следующее:
$ ln -s /vendor/bin/phpcs phpcs
$ ln -s /vendor/bin/phpcbf phpcbf
Это позволит вам запускать двоичные файлы с вашего терминала. Чтобы проверить, что нет, попробуйте следующую команду:
$ ./phpcs --version
И вы должны увидеть такой вывод:
PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http://www.squiz.net)
Если да, то у вас все настроено правильно.
3 Установите расширение PHP CodeSniffer
Следующий шаг, пожалуй, самый простой — настроить расширение PHP CodeSniffer в Code. У вас есть несколько вариантов, но у меня есть хороший опыт работы с этим конкретным расширением.
После его установки и перезагрузки IDE вы должны быть готовы к установке и настройке PHP CodeSniffer для каждого проекта.
4 Настройте свое рабочее пространство
В Code следующее, что вам нужно сделать, это настроить PHP Code Sniffer для вашего конкретного проекта. Для этого проще всего настроить рабочее пространство для вашего проекта.
Вы можете сделать это, щелкнув меню «Файл», а затем щелкнув пункт меню «Сохранить рабочее пространство как… ». Это создаст project.code-workspace
файл везде, где вы решите его включить.
Если вы управляете версиями своего проекта, я рекомендую хранить его в корне вашего проекта, чтобы вы могли сохранить его в управлении версиями. Затем, если вы откроете этот файл, вы заметите, что это JSON и включает settings
директиву. В этой директиве добавьте следующие настройки:
project.code-workspace
Обратите внимание, что выше мы явно сообщаем расширению, где находится путь к исполняемому файлу, то есть в vendor
каталоге относительно workspace
файла.
Как только вы это сделаете, вы сможете начать писать код и заставить его активно анализировать ваш код во время работы.
Хочу больше?
Если вы заинтересованы в еще более агрессивном сниффинге и исправлении ошибок и проблем в коде, я рекомендую ознакомиться со статьей на GrumPHP.