Corriger l’erreur de reniflage PHPCompatibility référencée
Il existe de nombreux packages intéressants que nous pouvons utiliser dans nos projets basés sur PHP et si vous utilisez Composer ou GrumPHP, PHPCompatibility est celui que je recommande d’inclure dans vos projets, en particulier si vous écrivez du code pour quelque chose qui va traverser plusieurs versions de PHP (c’est-à-dire sur des hôtes qui proposent différentes versions).
Il s’agit d’un ensemble de sniffs pour PHP CodeSniffer qui vérifie la compatibilité entre les versions de PHP. Il vous permettra d’analyser votre code pour la compatibilité avec les versions supérieures et inférieures de PHP.
C’est quelque chose qui doit être installé dans composer et c’est quelque chose que je recommande aux personnes qui écrivent du code pour WordPress en raison de la grande variation qui existe au sein de nos hôtes.
Parfois, cependant, vous pouvez rencontrer un problème comme celui -ci :
ERROR: Referenced sniff "PHPCompatibility" does not exist
Et si vous courez, $ phpcs -i
vous pouvez recevoir un message qui n’est pas clair.
Plus précisément, si vous exécutez cette commande, vous pouvez voir ceci :
The installed coding standards are PEAR, PSR1, Zend, Squiz, PSR12, PSR2, MySource and PHPCompatibility.
Bizarre, non ? Mais il existe une solution simple et elle concerne la mise à jour des commandes de script post-installation et post-mise à jour proposées par Composer.
À cette fin, nous pouvons utiliser les mêmes techniques pour nous assurer que PHPCompatibility fonctionne correctement si jamais vous voyez le message. Mettez simplement à jour votre composer.json
pour qu’il ressemble à ceci :
"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"
}
Bien sûr, votre kilométrage variera en fonction de votre configuration réelle, mais l’essentiel des commandes devrait résoudre le problème.