Nette Coding Standard
*********************
.[perex]
[Coding Standard |https://github.com/nette/coding-standard] formatta automaticamente il vostro codice PHP secondo lo [standard di codifica di Nette |contributing:coding-standard], 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:
```shell
composer global require nette/coding-standard
```
e assicuratevi che la directory globale dei binari vendor sia [nella vostra variabile d'ambiente `$PATH`|https://getcomposer.org/doc/03-cli.md#global].
Uso
===
Lo strumento offre due comandi. Il comando `check` si limita a segnalare le violazioni, mentre `fix` le ripara automaticamente:
```shell
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`:
```shell
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
<?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
<?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ì:
```yaml
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check
```
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