Seit TYPO3 v11 gilt eine klare Regel: jede Action in einem Extbase-Controller muss ein PSR-7 Response-Objekt zurückgeben. Früher war es möglich, null, einen String oder sogar Objekte, die zu einem String gecastet werden konnten, zurückzugeben – das ist jetzt Vergangenheit.
Warum diese Änderung?
Das Ziel war eindeutig:
- PSR-Standards konsequent einführen,
- weniger „Magie“ hinter den Kulissen,
- Controllercode präziser und nachvollziehbarer gestalten.
Dadurch haben wir als Entwickler:innen die volle Kontrolle über das, was eine Action an den Browser zurückliefert.
Neue Werkzeuge im ActionController
Um die Arbeit zu erleichtern, wurde im Core eine Abhängigkeit zu PSR-17 eingeführt:
- ResponseFactoryInterface – erstellt Response-Objekte
- StreamFactoryInterface – erstellt Stream-Objekte für den Response-Body
Beide Interfaces sind Teil der PSR-17-Spezifikation. Damit lassen sich eigene Responses sehr flexibel bauen.