Як виключити файли з PHP CodeSniffer
Коли ви працюєте з PHP CodeSniffer і робите це в терміналі, ви, ймовірно, хочете виводити помилки в щось інше, а не у вашу IDE.
Я маю на увазі, якби це було так, ви б просто запустили його у своєму редакторі, чи не так?
Але іноді вам може бути цікаво знайти проблеми в коді інших людей. Можливо, це залежність, можливо, це частина програмного забезпечення третьої сторони, або, можливо, це послуга.
У будь-якому випадку, якщо ви налаштували каталог проекту таким чином , щоб використовувати Composer для включення PHP CodeSniffer, і ви використовуєте стандарти кодування WordPress, то вам, імовірно, потрібно буде виключити файли з PHP CodeSniffer під час запуску програма.
І ось як ви можете це зробити.
Перш ніж перейти до необхідних команд, я припускаю, що у вас є налаштування каталогу приблизно так:
Потенційна структура каталогу.
Тобто у вас є:
- купа файлів PHP (і підкаталогів, що містять файли PHP),
- файл composer.json для впровадження PHP CodeSniffer у проект
- каталог постачальника, який містить залежності для PHP CodeSniffer
Якщо ви встановили стандарти кодування WordPress, але не налаштували їх для PHP CodeSniffer, виконайте цю команду:
$ ./vendor/bin/phpcs --config-set installed_paths ~/path/to/wpcs
Отже, ось проблема:
Ви хочете виключити файли з PHP CodeSniffer, але у вас є багато файлів для аналізу (а саме після того, як ви представили каталог постачальника). Як виключити файли з PHP CodeSniffer, але при цьому отримати бажані результати?
Вам знадобиться кілька додаткових команд:
- переконайтеся, що ви включили стандарти кодування WordPress як частину конфігурації,
- явно скажіть PHP CodeSniffer використовувати стандарт WordPress
- повідомте PHP CodeSniffer, які каталоги ігнорувати та які файли обробляти
Звучить складно? Команда дуже проста:
$ ./vendor/bin/phpcs --ignore=*/vendor/* --standard=WordPress .
І термінал має виглядати так:
Кінцевий результат нюхання лише файлів PHP для поточного каталогу.
На цьому етапі ви зможете переглянути помилки у своєму терміналі (сподіваюся, їх немає, чи не так? 😏) або ви можете передати їх в інший файл для перегляду в іншій програмі або пізніше.
