Laravel Pint - Facile e veloce come bere una pinta


Pubblicato il (1 anno fa)

Tempo di Lettura Stimata: 4 minuti

Capitoli Totali: 6

Immagine di anteprima dell'articolo Laravel Pint - Facile e veloce come bere una pinta

Laravel Pint è un “code style fixer” cucito su misura per Laravel, è open source, è basato sul progetto PHP-CS-Fixer e non ha altre dipendenze da installare.

Come? Non hai mai sentito parlare di PHP-CS-Fixer?

Che cos’è PHP-CS-Fixer

Innanzitutto, PHP-CS-Fixer (PHP Coding Standards Fixer) è una libreria open source che ti permette di standardizzare il codice utilizzando delle regole uguali per tutti gli sviluppatori coinvolti nel progetto.

Le regole possono essere personalizzate in base al team oppure secondo il PSR che sta per PHP Standard Recommendation. Le regole PSR sono state introdotte dal gruppo denominato PHP-FIG e puoi trovarle aggiornate a questo link.

Praticamente una volta lanciato il comando del fixer verrà scandagliato tutto il codice del progetto e verranno apportate automaticamente correzioni o modifiche seguendo le regole di stile precedentemente impostate.

Il principale vantaggio di utilizzare PHP-CS-Fixer nei tuoi progetti è la sua capacità di migliorare la leggibilità e la manutenibilità del codice per noi poveri esseri umani.

Potrai direi addio (o quasi) a tutti gli errori legati alla formattazione (spazi, parentesi disallineate, indentazioni mancate ecc.) e concentrarti sulle features da implementare nel codice.

Perchè utilizzare Laravel Pint

PHP-CS-Fixer è uno strumento mastodontico da configurare e utilizzare, per chi è alle prime armi potrebbe essere uno scoglio insormontabile.

Laravel Pint, invece, è creato appositamente per Laravel. Vengono rispettati tutti gli standard PSR e non dovrai preoccuparti di nulla. La configurazione base è gia cucita su misura per il framework Laravel. Avrai tutto il codice sotto standard PSR-12 senza configurare nulla!

Come detto nella descrizione di PHP-CS-Fixer, questo tool serve appunto per rendere il codice ‘compliant’ tra tutti i membri del team e non solo.
Anche in fase di onboarding di potenziali nuovi membri del team, seguire delle linee guida universali, ti permetterà un inserimento delle nuove risorse molto piú veloce e indolore.

Come si installa Laravel Pint

Per i nuovi progetti non avrai bisogno di installare nulla, Laravel Pint è presente nelle dipendenze di Laravel.

"require-dev": {
"fakerphp/faker": "*****",
"laravel/pint": "*****",
"laravel/sail": "*****"
},

Per progetti gia inizializzati, invece, potrai installare Laravel Pint con il comando:

composer require laravel/pint --dev

Tutto qui, installazione completata.

Come utilizzare laravel Pint

Il tool è installato, non ti resta che lanciare da terminale il comando:

./vendor/bin/pint

Stai richiamando le funzionalità di Pint in tutto il progetto.

Inoltre potrai lanciare la verifica sulla singola cartella:

./vendor/bin/pint app/Models

Oppure sul singolo file:

./vendor/bin/pint app/Models/User.php

Preset

Di default Laravel Pint avrà configurato il preset Laravel, appunto.

Ma supponiamo di voler formattare il progetto secondo lo standard PSR12, dovremo semplicemente effettuare una sovrascrittura del file di configurazione standard.

Da terminale, crea un file nella root del progetto chiamato pint.json:

touch pint.json

In questo file .json appena creato inserisci il preset di riferimento:

{
"preset": "psr12"
}

I preset che sono supportati al momento da laravel Pint sono: laravelpsr12, e symfony.

Regole di Configurazione

Come detto Laravel Pint puo essere configurato semplicemnte impostando i preset: Laravel, Symfony o più genericamente per il PSR-12.

Ma, supponiamo il caso tu sia un Lead Developer e desideri personalizzare il file di configurazione con altre regole: nulla di piu semplice.

Ti ricordo che sotto la scocca c’è il motore di PHP-CS-Fixer quindi sono disponibili tutte le regole di stile di quest’ultimo.

Una risorsa importante da cui attingere le regole è il configuratore nativo di PHP-CS-Fixer che ti offrirà una serie di regole specifiche per formattare il codice.

Ad esempio voglio semplificare i return delle funzioni e dei metodi, rimuovendo tutti i return null sparsi nella mia codebase:

{
"preset": "laravel",
"rules": {
"simplified_null_return": true
}
}

Cosi facendo una eventuale funzione:

public function testCase($a): void
{
if (!is_null($a)) {
$this->goToFunction($a);
}
 
return null;
}

Dopo aver lanciato il comando:

./vendor/bin/pint

Verrà corretta in:

public function testCase($a): void
{
if (!is_null($a)) {
$this->goToFunction($a);
}
 
- return null;
 
}

Escludere File o Cartelle

Sempre in ottica di personalizzare il preset, è possibile anche escludere file o cartelle in maniera altrettanto semplice.

Di default verrà sempre ignorato il contenuto del vendor (per ovvi motivi) ma a tuo piacimento potrai escludere:

  • Per cartella
{
"exclude": [
"package/cartella-mio-pacchetto"
]
}
  • Per pattern di nomi
{
"notName": [
"*-v2.php"
]
}
  • Per singolo file
{
"notPath": [
"package/cartella-mio-pacchetto/file.php"
]
}

In Conclusione

Se sviluppi prevalentemente con Laravel, utilizzare Laravel Pint è altamente consigliato. Ne gioverai sia da un punto di vista di pulizia che di qualità del codice.

Non dimenticare che è basato su PHP CS Fixer, quindi Laravel Pint sfrutta appieno tutta la potenza della libreria originale offrendotri dei presets gia configurati.

Francesco Mansi

Chi è l'autore

Da quando le nonnine al supermercato hanno smesso di chiamarmi giovanotto posso finalmente fingermi un adulto con esperienza.
Lavoro con Laravel dalla versione 5.5 e con PHP da più di 10 anni. Non sono un guru ma adoro schematizzare e mettere per iscritto tutto quello che studio, quindi quello che troverai qui sono solamente appunti che spero possano servirti.

Francesco Mansi


Articoli Correlati
Immagine in Evidenza per l'articolo Guida su come installare Laravel su Windows e Mac
Laravel

Guida su come installare Laravel su Windows e Mac

In questo articolo, ti illustrerò tre metodi per installare Laravel sia su Mac che su Windows

Immagine in Evidenza per l'articolo Cos’è Laravel e come funziona
Laravel

Cos’è Laravel e come funziona

I prerequisiti obbligatori per una comprensione ottimale della logica del framework php più popolare del momento.

Immagine in Evidenza per l'articolo Cosa c’è di Nuovo in Laravel 10
Laravel

Cosa c’è di Nuovo in Laravel 10

Laravel 10 è la prossima versione principale di Laravel e il suo rilascio è previsto per il 7 Febbraio 2023. Scopriamo insieme le nuove funzionalità.