Cos’è Laravel Pint
Laravel Pint è uno strumento di formattazione automatica del codice costruito su PHP CS Fixer. È progettato per essere usato senza configurazione e formatta il codice secondo lo stile di codifica di Laravel. Automatizzando i “commenti di code review sullo stile” comuni nello sviluppo in team, puoi concentrarti sulle revisioni davvero importanti.Installazione
Nelle nuove applicazioni Laravel Pint è già installato. Nei progetti più vecchi installalo con Composer.Esecuzione
Uso di base
Corregge automaticamente tutti i file.php del progetto.
Elenco delle opzioni
| Opzione | Descrizione |
|---|---|
--test | Rileva le violazioni senza modificare i file. Se ne trova, restituisce un exit code diverso da zero |
--dirty | Considera solo i file con modifiche non ancora committate su Git |
--diff=[branch] | Considera solo i file diversi rispetto al branch indicato |
--repair | Corregge le violazioni e restituisce comunque un exit code diverso da zero se ha corretto qualcosa |
--parallel | Modalità di esecuzione parallela (sperimentale) per migliorare le prestazioni |
--max-processes=4 | Da combinare con --parallel per indicare il numero massimo di processi |
-v | Mostra il dettaglio delle modifiche |
--config | Indica il path del pint.json da usare |
--preset | Indica il preset da usare |
Configurazione
Puoi personalizzare il comportamento creandopint.json nella root del progetto.
Preset
Un preset è un insieme di regole. Il preset predefinito èlaravel con le regole più adatte a progetti Laravel.
| Preset | Descrizione |
|---|---|
laravel | Stile di codifica consigliato per Laravel (predefinito) |
psr12 | Standard di codifica PSR-12 |
per | PER Coding Style |
symfony | Stile di codifica di Symfony |
empty | Nessuna regola. Da usare per definire regole da zero |
Personalizzazione delle regole
Puoi attivare/disattivare singole regole inpint.json. Le regole disponibili sono elencate in PHP CS Fixer Configurator.
Esclusione di file/cartelle
Puoi escludere cartelle specifiche dal controllo.notName.
notPath.
Configurazione consigliata
Esempio dipint.json efficace nella pratica di sviluppo.
| Regola | Effetto |
|---|---|
no_unused_imports | Con false non rimuove gli use non usati. Poiché il default di Pint è true (rimuove), nei progetti Laravel normali questa voce non è necessaria |
strict_comparison | Converte == in === e != in !== per prevenire bug da coercizione di tipo |
declare_strict_types | Aggiunge automaticamente declare(strict_types=1); all’inizio del file per aumentare la sicurezza dei tipi |
no_unused_imports è pensato per lo sviluppo di pacchetti. Il default di Pint è true (rimuovere gli use inutilizzati); nei normali progetti Laravel la voce è superflua. Nello sviluppo di pacchetti ci sono pattern con trait/interfacce importate per attivare/disattivare funzionalità, quindi metterlo a false e cambiarlo a true in base al pacchetto è comodo.Script in composer.json
Registrando gli script incomposer.json puoi eseguire composer pint direttamente.
Nei CI usa
composer pint:test per rilevare violazioni senza modificare i file. Con l’opzione --test esce con codice diverso da zero in caso di errore, utile per il gate del CI.Esecuzione automatica con GitHub Actions
Puoi usare GitHub Actions per correggere e committare automaticamente lo stile a ogni push.Configura i permessi del workflow
Nelle Settings > Actions > General > Workflow permissions della repository GitHub attiva “Read and write permissions”.