Architektur und Request · Frage 10 von 12

Eine Middleware ruft $request->withAttribute('myext.region', $region) auf und danach return $handler->handle($request). Im Controller fehlt das Attribut. Was ist der Fehler?

1 Antwort ist richtig. Mittel

Lösung anzeigen

Lösung

  • C withAttribute() gibt einen neuen Request zurück; ohne $request = $request->withAttribute(...) wird der unveränderte Request weitergereicht

Erklärung

PSR-7-Requests sind unveränderlich: Jede with*()-Methode liefert eine geänderte Kopie und lässt das Original unangetastet. Wer das Ergebnis nicht zuweist, reicht den alten Request an den nächsten Handler weiter, und das Attribut geht verloren. Richtig ist $request = $request->withAttribute('myext.region', $region); danach sehen alle folgenden Middlewares und der Controller das Attribut. Eine Anmeldung von Attributen gibt es nicht, und Punkte im Namen sind üblich, der Core nutzt z. B. frontend.user.

Zertifikate & Prüfungen

Welche Prüfung kommt als Nächstes?

19 Prüfungen kannst du schon üben, über 21 stimmst du gerade ab. Sieh dir alle Zertifikate mit offiziellen Infos an, gib deine Stimme ab oder schlag deine Prüfung vor.

Zur Zertifikatsübersicht