Was macht Laravel-Verifikationsschleife?
Führen Sie vor PRs, nach größeren Änderungen und vor dem Deployment aus.
Wann verwenden
- Vor dem Öffnen eines Pull-Requests für ein Laravel-Projekt
- Nach größeren Refactorings oder Abhängigkeitsupgrades
- Pre-Deployment-Verifikation für Staging oder Produktion
- Ausführen der vollständigen Linting -> Test -> Sicherheit -> Deployment-Bereitschafts-Pipeline
Funktionsweise
- Führen Sie die Phasen sequenziell aus – von Umgebungschecks bis zur Deployment-Bereitschaft – damit jede Ebene auf der letzten aufbaut.
- Umgebungs- und Composer-Checks dienen als Gate für alles andere; stoppen Sie sofort, wenn sie fehlschlagen.
- Linting/Statische Analyse sollten sauber sein, bevor Sie vollständige Tests und Abdeckung ausführen.
- Sicherheits- und Migrationsüberprüfungen erfolgen nach den Tests, damit Sie das Verhalten vor Daten- oder Release-Schritten verifizieren.
- Build-/Deployment-Bereitschaft sowie Queue- und Scheduler-Checks sind die letzten Gates; jeder Fehler blockiert das Release.
Phase 1: Umgebungschecks
php -v
composer --version
php artisan --version
- Überprüfen Sie, ob
.envvorhanden ist und die erforderlichen Schlüssel enthält - Bestätigen Sie
APP_DEBUG=falsefür Produktionsumgebungen - Bestätigen Sie, dass
APP_ENVdem Ziel-Deployment entspricht (production,staging)
Wenn Sie lokal Laravel Sail verwenden:
./vendor/bin/sail php -v
./vendor/bin/sail artisan --version
Phase 1.5: Composer und Autoload
composer validate
composer dump-autoload -o
Phase 2: Linting und statische Analyse
vendor/bin/pint --test
vendor/bin/phpstan analyse
Wenn Ihr Projekt Psalm anstelle von PHPStan verwendet:
vendor/bin/psalm
Phase 3: Tests und Abdeckung
php artisan test
Abdeckung (CI):
XDEBUG_MODE=coverage php artisan test --coverage
CI-Beispiel (Formatierung -> statische Analyse -> Tests):
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
Phase 4: Sicherheits- und Abhängigkeitschecks
composer audit
Phase 5: Datenbank und Migrationen
php artisan migrate --pretend
php artisan migrate:status
- Überprüfen Sie destruktive Migrationen sorgfältig
- Stellen Sie sicher, dass Migrationsdateinamen dem Format
Y_m_d_His_*folgen (z. B.2025_03_14_154210_create_orders_table.php) und die Änderung klar beschreiben - Stellen Sie sicher, dass Rollbacks möglich sind
- Verifizieren Sie
down()-Methoden und vermeiden Sie irreversiblen Datenverlust ohne explizite Backups
Phase 6: Build- und Deployment-Bereitschaft
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Stellen Sie sicher, dass Cache-Warmups in der Produktionskonfiguration erfolgreich sind
- Verifizieren Sie, dass Queue-Worker und Scheduler konfiguriert sind
- Bestätigen Sie, dass
storage/undbootstrap/cache/in der Zielumgebung beschreibbar sind
Phase 7: Queue- und Scheduler-Checks
php artisan schedule:list
php artisan queue:failed
Wenn Horizon verwendet wird:
php artisan horizon:status
Falls queue:monitor verfügbar ist, verwenden Sie es, um den Rückstand zu prüfen, ohne Jobs zu verarbeiten:
php artisan queue:monitor default --max=100
Aktive Verifikation (nur Staging): Senden Sie einen No-Op-Job an eine dedizierte Queue und führen Sie einen einzelnen Worker aus, um ihn zu verarbeiten (stellen Sie sicher, dass eine nicht-sync-Queue-Verbindung konfiguriert ist).
php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=healthcheck
Überprüfen Sie, ob der Job den erwarteten Seiteneffekt erzeugt hat (Log-Eintrag, Healthcheck-Tabellenzeile oder Metrik).
Führen Sie dies nur in Nicht-Produktionsumgebungen aus, in denen die Verarbeitung eines Testjobs sicher ist.
Beispiele
Minimaler Ablauf:
php -v
composer --version
php artisan --version
composer validate
vendor/bin/pint --test
vendor/bin/phpstan analyse
php artisan test
composer audit
php artisan migrate --pretend
php artisan config:cache
php artisan queue:failed
CI-ähnliche Pipeline:
composer validate
composer dump-autoload -o
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
composer audit
php artisan migrate --pretend
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan schedule:list