Nette Code Checker

Code Checker sprawdza Twoje pliki źródłowe i znajduje w nich formalne usterki, takie jak niewidoczny BOM, znaki kontrolne, błędne kodowanie czy nieprawidłowa składnia plików PHP, Latte, NEON, JSON, oraz potrafi je automatycznie naprawić.

Instalacja

Zainstaluj go globalnie za pomocą Composera:

composer global require nette/code-checker

Upewnij się, że Twój globalny katalog bin Composera znajduje się w zmiennej $PATH. Polecenie code-checker jest wtedy dostępne z dowolnego miejsca, w dowolnym systemie operacyjnym.

Alternatywnie zainstaluj go jako samodzielny projekt:

composer create-project nette/code-checker

Wymaga PHP 8.0 lub nowszego.

Użytkowanie

Domyślnie Code Checker działa w trybie tylko do odczytu i jedynie wypisuje znalezione problemy:

code-checker

Aby faktycznie naprawić pliki, dodaj --fix. Najpierw wykonaj kopię zapasową plików lub uruchom narzędzie na czystym drzewie roboczym, abyś mógł później przejrzeć zmiany za pomocą git diff:

code-checker --fix

Skanowanie możesz ograniczyć do konkretnej ścieżki, pominąć pliki lub uruchomić szybszą kontrolę samej składni:

code-checker -d src --ignore "temp/*"
code-checker --only-syntax

W trybie tylko do odczytu narzędzie kończy działanie z kodem 0, gdy wszystko jest w porządku, oraz 1, gdy znajdzie jakikolwiek problem, dzięki czemu dobrze pasuje do procesów CI.

Pełna lista opcji:

Usage: code-checker [options]

Options:
	-d <path>             Folder or file to scan (default: current directory)
	-i | --ignore <mask>  Files to ignore
	-f | --fix            Fix the files
	-l | --eol            Normalize line endings to the system default
	--only-syntax         Check syntax only (faster)
	--no-progress         Do not show progress dots
	--version             Show version

Co robi Code Checker

  • sprawdza składnię szablonów Latte oraz plików .php, .neon.json
  • usuwa BOM
  • weryfikuje, czy pliki są poprawnym UTF-8
  • sprawdza występowanie znaków kontrolnych
  • wykrywa błędnie zapisane komentarze phpDoc (np. /* @var zamiast /** @var)
  • wymusza wcięcia tabulatorami w plikach PHP, CSS, JS i TS oraz spacjami w YAML
  • usuwa końcowe spacje i puste wiersze na końcu plików
  • normalizuje końce wierszy do domyślnych dla systemu (za pomocą parametru -l)