Nette Coding Standard
Coding Standard formatta automaticamente il vostro codice PHP secondo lo standard di codifica di Nette, dall'indentazione e dalle parentesi fino alla spaziatura e all'ordine degli import.
Sotto il cofano combina due strumenti standard del settore, PHP CS Fixer e PHP CodeSniffer, che arrivano già configurati, così non dovete impostare nulla da soli.
Installazione
Installate lo strumento globalmente con Composer:
composer global require nette/coding-standard
e assicuratevi che la directory globale dei binari vendor sia nella
vostra variabile d'ambiente $PATH.
Uso
Lo strumento offre due comandi. Il comando check si limita a segnalare le violazioni, mentre fix le
ripara automaticamente:
ecs check
ecs fix
Senza argomenti esamina le directory src/ e tests/; potete anche indicare uno o più percorsi
vostri, per esempio ecs check app bin.
Prima di lanciare il fixer per la prima volta, fate senz'altro un backup dei vostri file.
Versione di PHP
Lo strumento supporta PHP dalla 8.0 alla 8.5 e applica le regole in modo incrementale secondo la versione. La rileva
automaticamente dal composer.json del vostro progetto, ma la potete anche impostare esplicitamente con l'opzione
--preset:
ecs check --preset php81
Regole personalizzate
Potete adattare le regole al vostro progetto. Per cambiare le regole di PHP CS Fixer create nella radice del progetto un file
ncs.php:
<?php
return [
'strict_comparison' => false,
];
Per cambiare le regole di PHP CodeSniffer create un file ncs.xml. Non deve fare riferimento al preset della
versione (viene combinato automaticamente con esso) e potete usare $presets/ per includere uno qualsiasi dei preset
in dotazione:
<?xml version="1.0"?>
<ruleset name="MyProject">
<!-- attiva gli import use function/const -->
<rule ref="$presets/optimize-fn.xml"/>
<!-- disattiva una regola -->
<exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
</ruleset>
Entrambi i file vengono trovati automaticamente e le vostre regole hanno la precedenza sul preset. Per una modifica una tantum
che non volete committare, passate un file aggiuntivo con --config-file (.php per il fixer,
.xml per il sniffer).
Integrazione continua
In una pipeline di CI installate lo strumento come progetto ed eseguitelo da lì:
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check