Formattazione Blade in Laravel Pint
Formattazione Blade in Laravel Pint
Pint 1.30.0 è in grado di formattare i template Blade di Laravel, inclusa la sintassi Blade, gli attributi Alpine, l'ordinamento delle classi Tailwind e altro ancora. Utilizzando il nuovo flag --blade, abilita la regola configurabile Pint/laravel_blade che esegue i tuoi file .blade.php tramite Prettier e il plugin prettier-plugin-blade.
Novità
Formattazione Blade con --blade
Indirizza Pint a un progetto e aggiungi il flag:
./vendor/bin/pint --blade
Il flag è una scorciatoia che attiva la regola Pint/laravel_blade, quindi puoi attivarla permanentemente in pint.json invece:
{
"rules": {
"Pint/laravel_blade": true
}
}
Quando la regola è disattivata, Pint esclude completamente i file *.blade.php dal suo cercatore di file, comportamento che tutte le versioni precedenti avevano. Quando è attiva, solo i file che terminano con .blade.php vengono elaborati dal formattatore Blade.
La formattazione viene eseguita su Node, non su PHP. La regola richiede tre pacchetti npm e Pint li verifica prima di fare qualsiasi lavoro:
prettier(^3.8.4)prettier-plugin-blade(^3.2.2)prettier-plugin-tailwindcss(^0.8.0)
Se Node manca, Pint si interrompe con una spiegazione. Se i pacchetti mancano, rileva il tuo gestore di pacchetti, chiede se vuoi installarli e installa ciascuno con la versione fissata al vincolo richiesto. Se sono installati ma le versioni non soddisfano i vincoli, Pint si ferma e stampa il comando di installazione esatto per risolvere il problema.
Tre categorie di file Blade vengono saltate anche con la regola attiva, perché riformattarli cambia il loro output o il loro significato:
- File dei task Envoy (
Envoy.blade.php,envoy.blade.php) - File delle linee guida Boost in
resources/boost/guidelines/ - Viste Mail in
resources/views/emails/eresources/views/mail/
La suite di test inclusa con la funzionalità copre gli attributi Alpine, i binding Livewire wire:, i componenti Flux, l'ordinamento delle classi Tailwind, i blocchi @verbatim, gli heredoc, l'SVG inline e le classi dei componenti a file singolo, quindi la superficie gestita è più ampia della semplice indentazione HTML.
File rinominati in --diff
L'opzione --diff di Pint eseguiva git diff con --diff-filter=AM, che corrisponde ai file aggiunti e modificati ma non a quelli rinominati. Un file che scrivevi e poi rinominavi prima del push veniva silenziosamente saltato. Ora il filtro è --diff-filter=AMR in tutti i comandi diff committati, in staging e non in staging.
PR: #448 di @MassimilianoLattanzio
--quiet scrive i problemi su stderr
--quiet si comportava come --silent: le violazioni di stile venivano eliminate invece che reindirizzate. Ora i problemi vanno su stderr, quindi stdout resta vuoto e il codice di uscita riflette comunque il risultato, ma puoi leggere l'elenco dei file che hanno violato le regole.
Chiave in in pint.json
Ora puoi limitare le directory che Pint scansiona dal file di configurazione invece di passare i percorsi da riga di comando, rendendo più diretto il porting di una configurazione .php-cs-fixer.php.
PR: #454 di @cosmastech
Note di aggiornamento
Nessuna modifica di rottura per le configurazioni esistenti. La formattazione Blade è facoltativa e, con la regola disattivata, Pint tratta i file .blade.php esattamente come prima.
Aggiorna con Composer:
composer update laravel/pint
Riferimenti
Il codice sorgente è su GitHub all'indirizzo laravel/pint.
Altri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.