Laravel 13.36.0 ist am 14. Oktober 2026 erschienen. Die Version ergänzt Illuminate\Validation\Rule um einen Builder für jede Validierungsregel, die bisher nur als String geschrieben werden konnte. Dazu gehören required_with, accepted_if, url, uuid und distinct. Die neue API unterstützt die Autovervollständigung in IDEs.
use Illuminate\Validation\Rule;
$request->validate([
'phone' => [Rule::requiredWithout('email')],
'website' => ['nullable', Rule::url()->protocols(['https'])],
'device_id' => [Rule::uuid()->version(4)],
'tags.*' => [Rule::distinct()->ignoreCase()],
'password' => ['required', Rule::confirmed()],
]);Regeln ohne Parameter, etwa Rule::required() und Rule::nullable(), liefern einfache Regel-Strings zurück. Builder mit Feldnamen oder Werten übergeben diese Argumente als Array. Kommas innerhalb eines Werts werden dadurch nicht mehr als Trennzeichen behandelt. Rule::date() erhält außerdem equals(). Die Änderung stammt von @ericmp33 und ist in Pull Request #61833 enthalten.
Jack Bayliss hat der MySQL-Verbindung olap() und isVitess() hinzugefügt. PlanetScale nutzt Vitess, dessen standardmäßige OLTP-Workload eine Abfrage auf 100.000 Zeilen begrenzt. DB::olap() schaltet Lese- und Schreibverbindungen für die Dauer eines Callbacks auf die OLAP-Workload um und stellt danach den vorherigen Zustand wieder her. Bei einer Datenbank ohne Vitess wird nur der Callback ausgeführt. Derselbe Code funktioniert dadurch auch mit lokalem MySQL.
Queue-Worker können mit Worker::$flushStickyConnections = true Sticky-Datenbankverbindungen vor jedem Job zurücksetzen. Bei aktivem Sticky-Verhalten werden spätere Lesezugriffe nach einem Schreibzugriff an die Schreibverbindung geleitet. Die Option ist standardmäßig deaktiviert, weil ein späterer Job von Daten aus einem vorherigen Job abhängen kann.
Kévin Dunglas hat Mercure-Broadcasts geändert. Ereignisse, die ausschließlich Mercure verwenden, werden nun standardmäßig synchron veröffentlicht. Ereignisse mit einer weiteren Verbindung bleiben in der Queue. MERCURE_ASYNC=true aktiviert wieder die asynchrone Verarbeitung. In diesem Modus benötigen Queue-Worker MERCURE_URL. Das Release verhindert außerdem Abstürze von Artisan, wenn BROADCAST_CONNECTION=mercure ohne URL gesetzt ist oder FrankenPHP mercure_publish() nicht bereitstellt.
Queued Mailables berücksichtigen nun #[DeleteWhenMissingModels] und #[FailOnTimeout] sowie die zugehörigen Properties. Wird das referenzierte Order-Modell vor dem Versand gelöscht, wird der Job gelöscht und löst keine ModelNotFoundException aus. Ein Mailable mit Timeout wird als fehlgeschlagen markiert. Dadurch kann kein automatischer Wiederholungsversuch zu einem doppelten Versand führen. Diese Korrektur stammt von Volodya Kurshudyan.
Stephen Rees-Carter hat das Escaping in Markdown-Mailables korrigiert. Ein Backslash in Benutzereingaben konnte bisher die schließende Klammer eines Links maskieren und dessen Ziel verändern. Backslashes werden nun zusammen mit den Klammern escaped.
Weitere Changelog-Einträge betreffen Exit-Codes bei Worker-Timeouts, eine Hintergrundverbindung in der Standard-Queue-Konfiguration und Verbindungsdaten in queue:work --json. Ein durch Prompts verursachtes Speicherleck in Tests wurde behoben. Hinzu kommen benannte S3-Credential-Provider, Cloud-IAM-Disks, EncodedParameter und Unterstützung für phpstan/phpstan:2.3.1. phpredis baut den Client nun korrekt neu auf, wenn kein Cluster-Knoten erreichbar ist, und gibt persistente Sockets davor frei.
Weitere Korrekturen betreffen PgBouncer-SSL-EOF-Fehler bei Failover, Notification::locale(), Morph-Map-Aliase in constrain(), morphWith() und loadMorph(), numerische Schlüssel in JSON-Übersetzungsdateien, Number::pairs(), retry_after bei Mailern und Zeilenumbrüche in eventStream()-Nachrichten. Ebenfalls geändert wurden Schema::getColumn(), Arr::first(), Context::pop(), das Bündeln von Queue-Benachrichtigungen, JSON-Pfad-Updates, Prozess-Timeouts, Sperren eindeutiger Queue-Listener, UniqueFor-Attribute bei Broadcasts, rekursive Reconnects, die Suche nach Contextual Bindings und Model-Attribute-Casts. Das Release enthält außerdem Aufräumarbeiten an Tests, Cache, Proxy, Console, StyleCI, GitHub Actions und Views.




Kommentare
Noch keine Kommentare — schreib den ersten.
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.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.