Kiedy pracujesz z PHP CodeSniffer i robisz to w terminalu, prawdopodobnie będziesz chciał wypisać błędy do czegoś innego niż twoje IDE.
Chodzi mi o to, że gdyby tak było, po prostu uruchomiłbyś go w swoim edytorze, prawda?
Ale są chwile, w których możesz być zainteresowany znalezieniem problemów w kodzie innych osób. Być może jest to zależność, może jest to oprogramowanie innej firmy, a może jest to przysługa.
Niezależnie od przypadku, jeśli skonfigurowałeś katalog projektu w sposób , który wykorzystuje Composer do włączenia PHP CodeSniffer i używasz WordPress Coding Standards, prawdopodobnie będziesz musiał wykluczyć pliki z PHP CodeSniffer podczas uruchamiania program.
I tak możesz to zrobić.
Przed przejściem do poleceń, które są niezbędne, zakładam, że masz konfigurację katalogu podobną do tej:
Potencjalna struktura katalogów.
Oznacza to, że masz:
- kilka plików PHP (oraz podkatalogów zawierających pliki PHP),
- plik composer.json do wprowadzenia PHP CodeSniffer do projektu
- katalog dostawców, który zawiera zależności dla PHP CodeSniffer
Jeśli masz zainstalowane WordPress Coding Standards, ale nie masz ich ustawionych dla PHP CodeSniffer, wydaj to polecenie:
$ ./vendor/bin/phpcs --config-set installed_paths ~/path/to/wpcs
Oto problem:
Chcesz wykluczyć pliki z PHP CodeSniffer, ale masz dużo plików do przeszukania (odkąd wprowadziłeś katalog vendor). W jaki sposób możemy wykluczyć pliki z PHP CodeSniffer, jednocześnie uzyskując pożądane wyniki?
Potrzebujesz kilku dodatkowych poleceń:
- upewnij się, że uwzględniłeś w konfiguracji standardy kodowania WordPress,
- wyraźnie powiedz PHP CodeSniffer, aby używał standardu WordPress
- powiedz PHP CodeSniffer, które katalogi zignorować i które pliki przetworzyć
Brzmi skomplikowanie? Polecenie jest naprawdę proste:
$ ./vendor/bin/phpcs --ignore=*/vendor/* --standard=WordPress .
A terminal powinien wyglądać tak:
Wynik netto sniffowania tylko plików PHP dla bieżącego katalogu.
W tym momencie powinieneś być w stanie wyświetlić błędy w swoim terminalu (mam nadzieję, że ich nie ma, prawda? 😏) lub możesz przesłać je do innego pliku, aby przejrzeć je w innej aplikacji lub w późniejszym terminie.
