Kurzfassung: Installieren Sie das Paket mit composer require --dev magentron/laravel-blade-lint und führen Sie anschließend php artisan blade:lint aus, um alle Ihre Blade-Templates zu validieren. Unterstützt wird Laravel 5.4 bis 11.
Das Problem: stille Template-Fehler
Blade-Templates können Syntaxfehler enthalten, die erst dann auftreten, wenn ein Benutzer die jeweilige Seite aufruft. Im Gegensatz zu PHP-Dateien, die während des Deployments auf ihre Syntax geprüft werden, werden Blade-Templates bedarfsgesteuert kompiliert — Fehler können also unbemerkt bis in die Produktion gelangen.
Häufige Probleme sind:
- Nicht geschlossene
@if-,@foreach- oder@section-Direktiven - Nicht übereinstimmende geschweifte Klammern in Ausdrücken
- Ungültige PHP-Syntax innerhalb von Blade-Direktiven
- Tippfehler in Direktiv-Namen
Die Lösung: Laravel Blade Lint
Ich habe Laravel Blade Lint entwickelt, um dieses Problem zu lösen. Es handelt sich um einen einfachen Artisan-Befehl, der alle Ihre Blade-Templates validiert, indem er sie zu PHP kompiliert und auf Syntaxfehler prüft — ohne dabei Code auszuführen.
Installation
# Install via Composer composer require --dev magentron/laravel-blade-lint
Für Laravel 5.5 und höher wird der Service Provider automatisch erkannt. Für ältere Versionen fügen Sie den Service Provider manuell zu config/app.php hinzu.
Grundlegende Verwendung
# Alle Blade-Templates prüfen php artisan blade:lint # Bestimmtes Verzeichnis prüfen php artisan blade:lint resources/views/emails # Ausführliche Ausgabe php artisan blade:lint -v # Debug-Modus (kompiliertes PHP anzeigen) php artisan blade:lint --debug
Hauptfunktionen
Multi-Prozess-Unterstützung
Bei großen Projekten mit Hunderten von Templates erkennt der Linter automatisch die verfügbaren CPU-Kerne und verteilt die Validierung auf mehrere Worker-Prozesse. Dies kann das Linten bei größeren Codebasen erheblich beschleunigen.
# 4 parallele Prozesse verwenden php artisan blade:lint -p 4 # CPU-Kerne automatisch erkennen (Standard) php artisan blade:lint
CI/CD-Integration
Der Befehl gibt einen Exit-Code ungleich null zurück, wenn Fehler gefunden werden, was ihn ideal für CI-Pipelines macht:
# GitHub Actions Beispiel
- name: Lint Blade templates
run: php artisan blade:lint
# GitLab CI Beispiel
blade-lint:
script:
- php artisan blade:lint
Klare Fehlerausgabe
Wenn Fehler gefunden werden, erhalten Sie eine übersichtliche Ausgabe mit Dateiname, Zeilennummer und Fehlermeldung:
ERROR resources/views/users/profile.blade.php Line 42: syntax error, unexpected end of file, expecting "endif"
Unterstützte Laravel-Versionen
Das Paket ist getestet und wird gepflegt für:
- Laravel 5.4, 5.5, 5.6, 5.7, 5.8
- Laravel 6.x, 7.x, 8.x, 9.x, 10.x, 11.x
Voraussetzungen
- PHP 7.0+ (PHP 8.0+ für Laravel 9+)
- PCNTL-Erweiterung (für Multi-Processing, optional)
In Ihren Workflow integrieren
Ich empfehle, das Blade-Linten zu Ihren Pre-Commit-Hooks oder Ihrer CI-Pipeline hinzuzufügen. Die Ausführung dauert nur wenige Sekunden und kann Fehler abfangen, die sonst erst in der Produktion auftreten würden.
// composer.json scripts
{
"scripts": {
"lint": [
"php artisan blade:lint",
"./vendor/bin/phpstan analyse"
]
}
}
Das Projekt ist auf GitHub verfügbar. Issues und Pull Requests sind willkommen.