Laravel Pint 1.30 formatiert Blade-Templates via Prettier
Laravel Pint 1.30.0 bringt optionale Formatierung von Blade-Templates über einen neuen --blade-Flag, realisiert mit Prettier sowie eigenen Blade- und Tailwind-Plugins.
Außerdem wurden --diff bei umbenannten Dateien korrigiert, --quiet leitet Ausgaben nach stderr um, und es gibt einen neuen "in"-Konfigurationsschlüssel.
Laravel Pint 1.30.0 kann jetzt Blade-Templates formatieren. Kern ist ein neuer --blade-Flag, der die konfigurierbare Regel Pint/laravel_blade aktiviert und .blade.php-Dateien durch Prettier mit dem prettier-plugin-blade-Plugin schickt. Statt des Flags lässt sich die Regel dauerhaft in der pint.json aktivieren: "rules": { "Pint/laravel_blade": true }.
Die Regel ist opt-in. Ist sie deaktiviert, schließt Pint *.blade.php komplett aus dem Datei-Finder aus – wie in allen früheren Versionen. Ist sie aktiv, laufen nur .blade.php-Dateien durch den Blade-Formatter.
Die Formatierung läuft über Node.js, nicht PHP. Benötigt werden drei npm-Pakete mit festen Versionsbeschränkungen: prettier (^3.8.4), prettier-plugin-blade (^3.2.2) und prettier-plugin-tailwindcss (^0.8.0). Pint prüft diese vorab: Fehlt Node, bricht es mit einer Erklärung ab; fehlen die Pakete, erkennt es den Paketmanager, fragt nach und installiert jedes Paket mit der geforderten Constraint; passen die Versionen nicht, stoppt Pint und gibt den exakten Installationsbefehl aus.
Drei Kategorien von Blade-Dateien werden trotz aktiver Regel übersprungen, weil eine Neuformatierung deren Ausgabe oder Bedeutung verändern würde: Envoy-Task-Dateien (Envoy.blade.php, envoy.blade.php), Boost-Guideline-Dateien unter resources/boost/guidelines/ sowie Mail-Views unter resources/views/emails/ und resources/views/mail/.
Die mitgelieferte Testsuite deckt Alpine-Attribute, Livewire-wire:-Bindings, Flux-Komponenten, Tailwind-Klassensortierung, @verbatim-Blöcke, Heredocs, Inline-SVG und Single-File-Component-Klassen ab – deutlich mehr als bloße HTML-Einrückung.
Dazu kommen drei kleinere Verbesserungen: --diff nutzte bisher git diff mit --diff-filter=AM und übersprang umbenannte Dateien stillschweigend; der Filter ist nun --diff-filter=AMR für committed, staged und unstaged Diffs (PR #448 von @MassimilianoLattanzio). --quiet verhielt sich bisher wie --silent; Style-Verstöße landen jetzt auf stderr, stdout bleibt leer und der Exit-Code spiegelt weiterhin das Ergebnis (PR #449 von @lazerg). Und ein neuer "in"-Schlüssel in der pint.json begrenzt die gescannten Verzeichnisse per Konfigurationsdatei statt per Kommandozeile, was die Migration von .php-cs-fixer.php erleichtert (PR #454 von @cosmastech).
Es gibt keine Breaking Changes; bei deaktivierter Regel behandelt Pint .blade.php-Dateien wie zuvor. Update per composer update laravel/pint. Referenzen: das v1.30.0-Release auf GitHub, der Changelog v1.29.3...v1.30.0 und der Implementierungs-Commit fefd4035.
Leserforum
Noch keine Beiträge — eröffne die Debatte.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Warte auf deinen Klick …
·