01.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

                
                    
                        
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
Copied to clipboard

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
Copied to clipboard

O Autorze

Krzysztof Napora

Posty, które mogą Cie zainteresować