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 i YAML, 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)