Dev News Daily ENDE

Laravel 13.39 schreibt Cache-Dateien atomar und räumt Sessions per Befehl auf

Laravel v13.39.0 erschien am 27. Oktober mit einer langen Liste von Korrekturen und einigen neuen Funktionen — meist klein, aber gezielt gegen Fehler, die in Produktion schwer zu finden sind.

Im Betrieb werden die Cache-Dateien für Konfiguration, Routen und Events jetzt atomar geschrieben, sodass ein Deployment, das sie während des Schreibens liest, keine halbfertige Datei mehr sieht. Hinzu kommt der Befehl session:garbage-collect (SessionGarbageCollectCommand), samt Registrierung. Der Datenbank-Cache-Lock bricht unter PostgreSQL nicht mehr die umgebende Transaktion ab, ein Job mit gelöschtem Modell hält queue:retry nicht mehr an, und Jobs der Datenbank-Queue scheitern beim Reservieren nicht mehr an Nebenläufigkeitsfehlern. Unter Octane sickert die vorherige Route nicht mehr in 404-Anfragen. Filesystem::exists() sperrt nun den Stream-Wrapper phar://.

Mehrere Korrekturen betreffen stillschweigend falsche Ergebnisse: Http::batch() wertete Fehler aus retry() und throw() als Erfolg; assertSeeText('0') bestand bei der Null als Zeichenkette; once() konnte einen zwischengespeicherten Wert für ein anderes Objekt liefern; Seitenzahlen bei gruppierten Union-Abfragen waren falsch, und der einfache Paginator ignorierte einen eigenen Seitennamen. JSON:API-Ressourcensammlungen mit Includes sind ein N+1-Abfrageproblem los.

Neu sind unter anderem das Abschalten des Primärschlüssels mit #[Table(key: false)], eine Dauer im Event JobAttempted, withoutDispatchingAfterResponses in BusFake sowie forceCreate und forceCreateQuietly bei BelongsToMany.

Laravel 13.39 schreibt Cache-Dateien atomar und räumt Sessions per Befehl auf
Laravel 13.39 schreibt Cache-Dateien atomar und räumt Sessions per Befehl auf — Dev News Daily

Was das bedeutet

Der rote Faden ist Code, der Erfolg meldete, ohne erfolgreich zu sein — ein Batch, der Fehler schluckte, eine Test-Assertion, die beim falschen Wert bestand, eine halb geschriebene, aber lesbare Cache-Datei. Solche Fehler erben Tests, die auf dem Framework aufbauen, ohne es zu merken. Teams auf 13.x sollten dieses Release übernehmen; wer sich auf Ergebnisse von Http::batch() verlässt, sollte prüfen, was die eigene Fehlerbehandlung bisher zu sehen bekam.

Primärquelle
Laravel framework releases
https://github.com/laravel/framework/releases/tag/v13.39.0