Was ist Laravel Pint
Laravel Pint ist ein automatischer Code-Style-Fixer, der auf PHP CS Fixer aufsetzt. Er ist so konzipiert, dass er ohne Konfiguration sofort einsatzbereit ist, und richtet den Code automatisch nach dem Laravel-Stil aus. Wenn Sie die im Team üblichen „Codestyle-Kommentare“ automatisieren, können Sie sich in Reviews auf das Wesentliche konzentrieren.Installation
In neu erstellten Laravel-Anwendungen ist Pint bereits installiert. In älteren Projekten installieren Sie es mit Composer.Ausführung
Grundlegende Nutzung
Alle.php-Dateien im Projekt automatisch anpassen:
Optionen
| Option | Beschreibung |
|---|---|
--test | Nur prüfen, ohne Dateien zu ändern. Bei Fehlern wird ein Non-Zero-Exit-Code zurückgegeben |
--dirty | Nur Dateien mit ungecommitteten Änderungen (Git) prüfen |
--diff=[branch] | Nur Dateien prüfen, die sich vom angegebenen Branch unterscheiden |
--repair | Style-Fehler korrigieren und bei Änderungen einen Non-Zero-Exit-Code zurückgeben |
--parallel | Paralleler Modus (experimentell) für mehr Performance |
--max-processes=4 | Kombiniert mit --parallel die maximale Prozesszahl festlegen |
-v | Details der Änderungen anzeigen |
--config | Pfad zur zu verwendenden pint.json angeben |
--preset | Zu verwendendes Preset angeben |
Konfiguration
Legen Sie im Projekt-Root einepint.json an, um das Verhalten anzupassen.
Presets
Presets sind vordefinierte Regel-Sets. Standard istlaravel – die für Laravel-Projekte optimalen Regeln.
| Preset | Beschreibung |
|---|---|
laravel | Empfohlener Laravel-Stil (Standard) |
psr12 | PSR-12-Coding-Standard |
per | PER Coding Style |
symfony | Symfony-Coding-Style |
empty | Keine Regeln. Regeln einzeln definieren |
Regeln anpassen
Inpint.json aktivieren oder deaktivieren Sie einzelne Regeln. Verfügbare Regeln finden Sie im PHP CS Fixer Configurator.
Dateien und Ordner ausschließen
Bestimmte Ordner lassen sich ausschließen.notName.
notPath.
Empfohlene Konfiguration
Ein Beispiel für eine praxistauglichepint.json:
| Regel | Wirkung |
|---|---|
no_unused_imports | Auf false gesetzt, werden ungenutzte use-Anweisungen nicht entfernt. Standard von Pint ist true (Entfernen), daher ist der Eintrag in normalen Laravel-Projekten nicht nötig |
strict_comparison | Wandelt == in === und != in !== um und verhindert Bugs durch unerwartete Typumwandlungen |
declare_strict_types | Fügt automatisch declare(strict_types=1); am Dateianfang ein und verbessert die Typsicherheit |
no_unused_imports ist vor allem für Paketentwicklung gedacht. Pints Standard ist true (ungenutzte use-Anweisungen entfernen); im normalen Laravel-Projekt ist der Eintrag daher nicht nötig. In der Paketentwicklung schaltet man Funktionalität oft über den Import von Traits oder Interfaces ein/aus. Deshalb ist es praktisch, den Wert auf false zu setzen und pro Paket bei Bedarf auf true zu ändern.Scripts in der composer.json
Wenn Sie in der composer.json Skripte für Pint registrieren, reicht composer pint.
In CI-Umgebungen erkennen Sie mit
composer pint:test Style-Verstöße, ohne Dateien zu ändern. Die Option --test gibt bei Fehlern einen Non-Zero-Exit-Code zurück und eignet sich damit für Pass/Fail-Checks in der CI.Automatische Ausführung mit GitHub Actions
Mit GitHub Actions können Sie bei jedem Push automatisch den Code-Style korrigieren und committen.Workflow-Berechtigungen einstellen
Aktivieren Sie in Ihrem GitHub-Repository unter Settings > Actions > General > Workflow permissions die Option „Read and write permissions“.