Webframework CakePHP 4.1 erweitert die Datenbankschicht

Der objektrelationale Mapper des in PHP verfassten Open-Source-Webframeworks verarbeitet neuerdings Fensterfunktionen und Common Table Expressions.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 5 Beiträge
Von

Das Team hinter CakePHP hat Version 4.1 des quelloffenen Webframeworks herausgegeben. Das Release konzentriert sich vor allem auf die Datenbankzugriffe. Der Mapper (ORM) als Komponente zur objektrelationalen Abbildung kann nun mit Common Tables Expressions (CTEs) umgehen und bietet Fensterfunktionen. Außerdem gibt es Ergänzungen beim Logging beziehungsweise Debugging.

Nachdem die letzte Hauptversion lediglich kleinere Ergänzungen für den Datenbankzugriff mitgebracht hat, halten im aktuellen Release zwei größere SQL-Features Einzug in den ORM. Fensterfunktionen sind eine Alternative zu Aggregatsfunktionen, bei denen aber der Blick auf die individuellen Spalten erhalten bleibt, statt sie zu gruppieren.

Als zweite Neuerung kennt der ORM nun Common Table Expressions, die seit 1999 Bestandteil des SQL-Standards sind. Sie ermöglichen das Erstellen von Unterabfragen vor allem zugunsten von strukturiertem und übersichtlichem Code. Die mit einem WITH erzeugten Abfragen erhalten dazu einen Namen, über den sie sich in anderen Abfragen wie eine reguläre View oder Tabelle nutzen lassen.

Die Debugger-Ausgaben passen sich in CakePHP 4.1 der aktuellen Umgebung an: debug() und Debugger::printVar() geben in Webkontexten HTML und im Befehlsfenster ANSI-Code aus.

Ebenfalls neu ist, dass Log-Ausgaben nun Platzhalter in geschweiften Klammern enthalten dürfen wie in folgendem Beispiel aus der CakePHP-Dokumentation:

Log::write('error', 'Could not process for userid={user}',
['user' => $user->id]);

Platzhalter nutzen Schlüssel-Werte-Paare, sodass für den Wert 1 als user folgende Zeile im Log erscheint:

Could not process for userid=1

Weitere Neuerungen in CakePHP 4.1.0 wie das Verwenden von Closures beim Sortieren von Abfragen über Query::orderAsc() und Query::orderDesc() lassen sich dem CakePHP-Blog entnehmen. Bereits Ende Juni war mit CakePHP 3.9.0 das voraussichtlich letzte Release der 3.x-Reihe erschienen. Wer noch nicht auf 4.x umsteigen möchte, erhält planmäßig bis Mitte Juni 2021 Bugfixes für CakePHP 3.9.

(rme)