Architektur und Request · Frage 9 von 12
Ein eigener ViewHelper braucht den aktuellen Request, etwa um die Site zu lesen. Wie kommt er in TYPO3 v14 daran?
1 Antwort ist richtig. Mittel
Lösung anzeigen
Lösung
- C $this->renderingContext->getAttribute(ServerRequestInterface::class)
Erklärung
Die RenderingContextFactory legt den Request als Attribut im RenderingContext ab, der Core selbst liest ihn so aus, z. B. in f:image und f:flashMessages. Ein ViewHelper kommt also über $this->renderingContext->getAttribute(ServerRequestInterface::class) daran und kann dann z. B. $request->getAttribute('site') aufrufen. $GLOBALS['TYPO3_REQUEST'] ist ein Überbleibsel, das der Core abbauen will. Der Request ist kein Service des DI-Containers, makeInstance liefert ihn nicht.