Deprecation: #109286 - Explicit request handling in PageRenderer 

See forge#109286

Description 

Some methods of class \TYPO3\CMS\Core\Page\PageRenderer require an instance of ServerRequestInterface being hand over since TYPO3 v14.2:

setLanguage() 

  • Old: PageRenderer->setLanguage(Locale $locale, ?ServerRequestInterface $request = null)
  • TYPO3 v14.2: PageRenderer->setLanguage(Locale $locale, ?ServerRequestInterface $request = null)
  • TYPO3 v15: PageRenderer->setLanguage(Locale $locale, ServerRequestInterface $request)

setDocType() 

  • Old: PageRenderer->setDocType(DocType $docType)
  • TYPO3 v14.2: PageRenderer->setDocType(DocType $docType, ?ServerRequestInterface $request = null)
  • TYPO3 v15: PageRenderer->setDocType(DocType $docType, ServerRequestInterface $request)

render() 

  • Old: PageRenderer->render()
  • TYPO3 v14.2: PageRenderer->render(?ServerRequestInterface $request = null)
  • TYPO3 v15: PageRenderer->render(ServerRequestInterface $request)

renderResponse() 

  • Old: PageRenderer->renderResponse(int $code = 200, string $reasonPhrase = '')
  • TYPO3 v14.2: PageRenderer->render(ServerRequestInterface|int $requestOrCode = 200, int|string $codeOrReasonPhrase = '', string $reasonPhrase = '')
  • TYPO3 v15: PageRenderer->render(ServerRequestInterface $request, int $code = 200, string $reasonPhrase = '')

Impact 

Request dependencies within PageRenderer are no longer implicit by accessing $GLOBALS['TYPO3_REQUEST'] but need to be hand over explicitly. Not handing over Request to above methods will trigger a deprecation level log message with TYPO3 v14 and will trigger a fatal PHP error with TYPO3 v15.

Affected installations 

The PageRenderer is a low level core class. Many extensions use higher level API and are not affected by the change directly.

Migration 

Adapt the method calls to hand over the Request object.