Blog
08.12.2021
TYPO3 v11 Response Interface
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.
PHP
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())); }
Drugi przykład Content-Type: application/json oraz status odpowiedzi 200
PHP
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())); }