Instalacja i użycie PHP Code Sniffer

Posted by

Zrobić wcięcie czy nie? Klasa powinna być zakończona pustą linią czy nie? Mimo że mówią o tym standardy to ciężko zapamiętać każdą informację. Na szczęście istnieje wygodne narzędzie, które powie nam gdzie nasz kod nadaje się do poprawy – i to na podstawie standardów 🙂

Wspomnianym wyżej narzędziem jest PHP Code Sniffer. W celu dodania pakietu do swojego projektu potrzebujemy wywołać w katalogu głównym aplikacji polecenie:

https://packagist.org/packages/squizlabs/php_codesniffer

albo dodać do composer.json wpis np. do sekcji require-dev. U mnie wówczas ta sekcja wygląda tak:

  "require-dev": {
    "phpunit/phpunit": "5.*",
    "squizlabs/php_codesniffer": "2.8.*"
  },

To tyle jeśli chodzi o samą instalację. Zapewne teraz chcemy uruchomić dopiero co dodaną paczkę. Aby to zrobić musimy otworzyć git bash i wydać tą komendę:

vendor/bin/phpcs --standard=PSR2 src

gdzie stadnard może być PSR0 i PSR2.
src to katalog, w którym chcemy wykonać analizę. Można wskazać konkretny katalog a nawet plik.
Jeśli natomiast zależy nam na sprawdzeniu tylko formatu php, możemy wówczas dodać flagę –extension:

vendor/bin/phpcs --standard=PSR2 --extensions=php src

W efekcie wywołania jednego bądź drugiego polecenia dostaniemy wynik analizy. Jeśli jest coś do poprawy będzie on miał taki format:

FILE: …tutaj ścieżka do pliku
———————————————————————-
FOUND 2 ERRORS AFFECTING 2 LINES
———————————————————————-
1 | ERROR | [x] End of line character is invalid; expected „\n” but
| found „\r\n”
52 | ERROR | [x] Opening brace should be on a new line
———————————————————————-
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
———————————————————————-

Jak widzimy powyżej w pierwszej linijce mamy ścieżkę do pliku, dzięki czemu bez trudu zlokalizujemy plik. Następnie narzędzie wskazało nam liczbę błędów i szczegóły każdego z nich. W podanym przykładzie są dwa błędy i oba mogą zostać naprawione przez drugie narzędzie – PHPCBF (PHP Code Beautifier and Fixer), które zostało zainstalowane w pakiecie z PHP Code Sniffer. Polecenie wygląda bardzo podobnie:

vendor/bin/phpcbf --standard=PSR2 --extensions=php src

a jeśli nie dodawaliśmy extensions to możemy i tutaj pominąć tą flagę.
Oczywiście możemy również podać konkretny plik, który chcemy poprawić. Cały proces zajmuje kilka chwil, po czym mamy kod już bez błędów.

Uwaga!
Spotkałem się z opinią, że PHP Code Beautifier and Fixer nie należy używać, gdyż jego działanie w pewnych przypadkach może być niepożądane. Nie mogę potwierdzić tej opinii z własnego doświadczenia, gdyż jest ono za krótkie.
Zawsze możemy sami usunąć wskazane błędy.

To już wszystko! Jak widać instalacja zajęła bardzo szybko, samo korzystanie też jest wygodne.
Zapraszam do wyrażania opinii poprzez komentarze poniżej.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *