Istnieje wiele fajnych pakietów, których możemy użyć w naszych projektach opartych na PHP i jeśli używasz Composer lub GrumPHP, PHPCompatibility to taki, który polecam dołączyć do twoich projektów, zwłaszcza jeśli piszesz kod do czegoś, co będzie działać wiele wersji PHP (czyli na hostach oferujących różne wersje).
Jest to zestaw sniffów dla PHP CodeSniffer, który sprawdza zgodność PHP z różnymi wersjami. Pozwoli Ci to przeanalizować Twój kod pod kątem kompatybilności z wyższymi i niższymi wersjami PHP.
To jest coś, co można zainstalować w kompozytorze i jest to coś, co polecam osobom piszącym kod dla WordPressa ze względu na to, jak wiele różnic istnieje w naszych hostach.
Czasami jednak możesz napotkać taki problem :
ERROR: Referenced sniff "PHPCompatibility" does not exist
A jeśli uciekniesz $ phpcs -i
, możesz otrzymać niejasną wiadomość.
W szczególności, jeśli uruchomisz to polecenie, możesz zobaczyć to :
The installed coding standards are PEAR, PSR1, Zend, Squiz, PSR12, PSR2, MySource and PHPCompatibility.
Dziwne, prawda? Jest jednak prosta poprawka, która wiąże się z aktualizacją poleceń skryptów poinstalacyjnych i poaktualizacyjnych, które oferuje Composer.
W tym celu możemy zastosować te same techniki, aby zapewnić prawidłowe działanie PHPCompatibility, jeśli kiedykolwiek zobaczysz komunikat. Po prostu zaktualizuj swój composer.json
, aby wyglądał tak:
"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"
}
Oczywiście Twój przebieg będzie się różnić w zależności od rzeczywistej konfiguracji, ale istota poleceń powinna rozwiązać problem.