Налаштування PHP CodeSniffer для кожного проекту
Кілька років тому я написав допис про налаштування PHP CodeSniffer у коді Visual Studio (і нещодавно також оновив його).
Але минуло чотири роки з моменту написання цієї публікації, і за цей час багато що може змінитися в тому, як ми пишемо код.
Чотири роки – це приблизно ера Інтернету, чи не так?
У будь-якому разі основні моменти цієї статті залишаються в силі, але якщо ви працюєте над різними проектами, і деякі з них потребують різних конфігурацій, налаштувань і стандартів, тоді спосіб встановлення та налаштування PHP CodeSniffer може відрізнятися від як ви налаштовуєте його на системному рівні.
Отже, якщо ви перебуваєте в такому положенні, ось як ви можете налаштувати PHP CodeSniffer для кожного проекту за допомогою Visual Studio Code.
PHP CodeSniffer для кожного проекту
У цій статті зроблено кілька припущень:
- Ви знайомі з Композитором ,
- Ви знаєте, як працювати з робочими областями в коді,
- Ви знайомі з 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.