Wraz z wydaniem Typo3 v11 pojawiął się znacząca zmiana która dotyczy wszystkich pluginów wykorzystujących Controller Extbase. Każda akcja Extbase musi teraz zwracać Psr\Http\Message\ResponseInterface.
Ta zmiana jest następstwem tego, że Core TYPO3 podąża nie tylko za PSR-7 ale także za PSR-17
Poniiżej kilka przykładów. Zacznijmy od najbardziej popularnego. Nagłowek Content-Type: text/html oraz status 200 jako kod odpowiedzi.
public function listAction(): ResponseInterface { $records = $this->newsRepository->findAll(); $this->view->assign('records', $records); return $this->responseFactory->createResponse() ->withAddedHeader('Content-Type', 'text/html; charset=utf-8') ->withBody($this->streamFactory->createStream($this->view->render())); }
php
Drugi przykład Content-Type: application/json oraz status odpowiedzi 200
public function listApiAction(): ResponseInterface { $records = $this->newsRepository->findAll(); $this->view->assign('value', [ 'records' => $records ]); return $this->responseFactory ->createResponse() ->withHeader('Content-Type', 'application/json; charset=utf-8') ->withBody($this->streamFactory->createStream($this->view->render())); }
php