Extensions mit Doctrine QueryBuilder für TYPO3 Version 9

Extensions der Agenturseite auf neuesten Stand gebracht: Datenbank nun mit Doctrine QueryBuilder angebunden. Repository ist fit für TYPO3 LTS 9.

Die neueste LTS Version 9 von TYPO3 steht in den Startlöchern. Der letzte Release Candidate ist seit Anfang September zum Download bereit, der Release der Version 9 selber ist für den Herbst vorgesehen.

Beim letzten TYPO3 Camp in Essen wurde die Roadmap für den damaligen Stand des Projekts vorgestellt. Einige Änderungen betreffen u. a. die Integration von realURL und anderen Extensions, die nun in den Core wandern. Was seitdem noch publik wurde: Auch die Programmierung eigener Extensions wird sich einmal mehr ändern.
Bei selbst erstellten Extensions konnte man Anfragen an die Datenbank mit Hilfe der API von TYPO3 recht bequem über eine Prozedur im Repository erstellen, die recht nah am nativen SQL-Code ist. Dies ist in Zukunft nicht mehr möglich. Ab der LTS Version 9 kommt der QueryBuilder zum Einsatz.

Damit übernimmt diese Schnittstelle die Anbindung über ein Objekt, wie sie für das bisherige QueryResultInterface bereits betrieben wurde. Positiv ist zu vermerken, dass man nun auf Objekte einer API zurückgreifen kann und damit weniger Sourcen selber schreiben muss. Nachteil dabei: Man muss alle bisherigen, selbst erstellten Abfragen aus der Datenbank umschreiben.

Genau das habe ich gestern getan. Das Projekt dazu war der Blog aus unserer Agenturseite. Für das Frontend gibt es mehrere Standardausgaben wie die Auflistung aller vorhandenen Kategorien und Tags. Die Daten dazu ziehe ich mir mit Abfragen direkt aus den Tabellen der Extension. In einigen Fällen gehe ich dabei mit Kreuztabellenabfragen über mehrere Tabellen, zudem setze ich counter und andere Funktionen wie Sortierung und Einschränkung der Anzahl von Ergebnissen ein. Dies ist nun über den QueryBuilder recht einfach möglich und wenn man den Code für eine Funktion implementiert hat, geht das auch recht einfach vonstatten. Schwieriger waren die Kreuztabellenabfragen. Der Join auf eine andere Tabelle gestaltet sich nun von der Denkweise her etwas anders.

Für alle Funktionen des Blog waren dies gestern zwei Stunden Arbeit. Die neue Version des Agenturblog ist auf unserer Webseite bereits implementiert. Was ich als Vorteil ansehe: Die langen Quellcodes von SQL-Queries, die früher auch einen 24 Zoll Monitor gerne mal gesprengt haben, sind nun zerlegt und einfacher zu bearbeiten. Die Fehlersuche beim Debuggen ist ein wenig leichter geworden. Dies gilt vor allem für die beliebten Fehler in der Syntax, wenn man früher außerhalb des sichtbaren Bereichs eine falsche Klammer eingebaut hat…

Diese ganzen Prozeduren werde ich in den kommenden Tagen dokumentieren. Aber das ist eine eigene Geschichte.