Das Laravel-Kernteam hat Version 6.5 des PHP-Framework Laravel veröffentlicht. Mit diesem Update werden gleich mehrere neue Methoden für die LazyCollection, den String Helper sowie für den Query Builder eingeführt.
Laravel 6.5: Neue Methode für LazyCollection
Das Update führt eine neue Methode ein: Ruft man die remember()
-Methode auf, soll diese eine neue LazyCollection
zurückgeben, die sich an Werte erinnert, die bereits aufgezählt wurden. Diese Werte sollen somit nicht erneut aus der Quelle gezogen werden.
Ein Beispiel aus dem Pull Request auf GitHub:
$users = User::cursor()->remember(); // No query has been executed yet. $users->take(5)->all(); // The query has been executed, and the first 5 users have been streamed from the DB. $users->take(20)->all(); // The first 5 users came from the cache. The rest continued the stream from the DB.
Zur Ergänzung der bestehenden Collection
-Klasse, nutzt die LazyCollection
-Klasse die Generatoren von PHP. Dadurch kann mit großen Datensätzen gearbeitet werden, ohne zu viel Speicher zu verbrauchen.
Zwei neue String-Methoden für Laravel
Das PHP-Framework Laravel bringt eine Vielzahl an globalen „Helfer“-PHP-Funktionen mit. Das Update hält zwei neue Methoden für den String Helper bereit: afterLast()
und beforLast()
. Zur Veranschaulichung gibt es hier ein Beispiel aus dem Pull Request:
$type = 'App\Notifications\Tasks\TaskUpdated'; Str::afterLast($type, '\\'); // TaskUpdated >$filename = 'photo.2019.11.04.jpg'; Str::beforeLast($filename, '.'); // photo.2019.11.04
Neue Methoden für den Query Builder
Auch der Query Builder, eine Schnittstelle zum Erstellen und Ausführen von Datenbankabfragen, hat ein Update erhalten. Die Methoden existsOR
und doesntExistOr
wurden hinzugefügt. Damit soll es möglich sein, einen Callback zu definieren, wenn die Bedingung false
ist.
$user->dossiers() ->whereNull('closed_at') ->doesntExistOr(function () { abort(422, 'User already has an open dossier'); });
Weiterführende Informationen zu Laravel 6.5 können der Release Note auf GitHub oder dem Beitrag auf dem offiziellen Laravel-Blog entnommen werden.