Виправте помилку нюхання PHPCompatibility
Є багато гарних пакетів, які ми можемо використовувати в наших проектах на основі PHP, і якщо ви використовуєте Composer або GrumPHP, PHPCompatibility — це той, який я рекомендую включити у ваші проекти, особливо якщо ви пишете код для чогось, що збирається виконувати кілька версій PHP (тобто на хостах, які пропонують різні версії).
Це набір сніффів для PHP CodeSniffer, який перевіряє сумісність між версіями PHP. Це дозволить вам проаналізувати ваш код на сумісність із вищою та нижчою версіями PHP.
Це те, що можна встановити в composer, і це те, що я рекомендую людям, які пишуть код для WordPress, через те, скільки варіацій існує на наших хостах.
Однак іноді ви можете побачити таку проблему :
ERROR: Referenced sniff "PHPCompatibility" does not exist
І якщо ви запустите $ phpcs -i
, ви можете отримати незрозуміле повідомлення.
Зокрема, якщо ви запустите цю команду, ви можете побачити це :
The installed coding standards are PEAR, PSR1, Zend, Squiz, PSR12, PSR2, MySource and PHPCompatibility.
Дивно, правда? Але є просте виправлення, і воно пов’язане з оновленням команд сценарію після встановлення та оновлення , які пропонує Composer.
З цією метою ми можемо застосувати ті самі методи, щоб забезпечити належну роботу PHPCompatibility, якщо ви побачите це повідомлення. Просто оновіть свій composer.json
вигляд так:
"require-dev": {
"phpcompatibility/php-compatibility": "*"
},
"prefer-stable": true,
"scripts": {
"post-install-cmd": ""vendor/bin/phpcs" --config-set installed_paths vendor/phpcompatibility/php-compatibility",
"post-update-cmd": ""vendor/bin/phpcs" --config-set installed_paths vendor/phpcompatibility/php-compatibility"
}
Звичайно, ваш пробіг буде відрізнятися залежно від ваших фактичних налаштувань, але суть команд має вирішити проблему.