Nette Code Checker

Code Checker sprawdza Twoje pliki źródłowe pod kątem formalnych wad, jak niewidoczny BOM, znaki sterujące, uszkodzone kodowanie albo nieprawidłowa składnia plików PHP, Latte, NEON i JSON, i potrafi je automatycznie naprawić.

Instalacja

Zainstaluj go globalnie przez Composera:

composer global require nette/code-checker

Upewnij się, że Twój globalny katalog bin Composera jest w Twoim $PATH. Polecenie code-checker jest wtedy dostępne skądkolwiek, w dowolnym systemie operacyjnym.

Alternatywnie zainstaluj go jako samodzielny projekt:

composer create-project nette/code-checker

Wymaga PHP 8.0 albo wyższego.

Użycie

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

code-checker

Żeby pliki faktycznie naprawić, dodaj --fix. Najpierw zrób kopię zapasową plików albo uruchom go na czystym drzewie roboczym, żeby móc potem przejrzeć zmiany przez git diff:

code-checker --fix

Możesz ograniczyć skanowanie do konkretnej ścieżki, pominąć pliki albo uruchomić szybsze sprawdzenie samej składni:

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

W trybie tylko do odczytu narzędzie kończy się kodem 0, gdy wszystko jest w porządku, i 1, gdy znajdzie jakikolwiek błąd albo problem do naprawienia, więc ładnie pasuje do pipeline'ó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 znaki sterujące
  • wykrywa zniekształcone komentarze phpDoc (np. /* @var zamiast /** @var)
  • zgłasza pliki PHP, którym brakuje deklaracji declare(strict_types=1)
  • wymusza tabulatory jako wcięcia w plikach PHP, CSS, JS i TS oraz spacje w YAML-u
  • usuwa końcowe białe znaki i puste linie na końcu plików
  • normalizuje końce linii do systemowych domyślnych (parametrem -l)