Nette Code Checker

Code Checker controlla nei vostri file sorgente i difetti formali come un BOM invisibile, caratteri di controllo, codifica rovinata o sintassi non valida dei file PHP, Latte, NEON e JSON, e sa correggerli automaticamente.

Installazione

Installatelo globalmente con Composer:

composer global require nette/code-checker

Assicuratevi che la directory globale bin di Composer sia nel vostro $PATH. Il comando code-checker è poi disponibile da qualsiasi punto, su qualsiasi sistema operativo.

In alternativa installatelo come progetto autonomo:

composer create-project nette/code-checker

Richiede PHP 8.0 o superiore.

Uso

Per impostazione predefinita Code Checker gira in modalità di sola lettura e si limita a segnalare i problemi che trova:

code-checker

Per riparare davvero i file aggiungete --fix. Fate prima un backup dei file, oppure lanciatelo su un albero di lavoro pulito, così potrete poi esaminare le modifiche con git diff:

code-checker --fix

Potete limitare la scansione a un percorso specifico, saltare dei file oppure eseguire controlli più veloci sulla sola sintassi:

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

In modalità di sola lettura lo strumento esce con codice 0 quando è tutto a posto e 1 quando trova un errore o un problema correggibile, quindi si inserisce bene nelle pipeline di CI.

Elenco completo delle opzioni:

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

Che cosa fa Code Checker

  • controlla la sintassi dei template Latte e dei file .php, .neon.json
  • rimuove il BOM
  • verifica che i file siano UTF-8 valido
  • controlla i caratteri di controllo
  • rileva i commenti phpDoc malformati (per esempio /* @var invece di /** @var)
  • segnala i file PHP privi della dichiarazione declare(strict_types=1)
  • impone le tabulazioni per l'indentazione nei file PHP, CSS, JS e TS, e gli spazi in YAML
  • rimuove gli spazi finali e le righe vuote alla fine dei file
  • normalizza i fine riga al valore predefinito del sistema (con il parametro -l)