Deprecation: #90421 - DocumentTemplate¶
See forge#90421
Description¶
The PHP class TYPO3\CMS\Backend\Template\DocumentTemplate
,
also available as $GLOBALS['TBE_TEMPLATE']
until TYPO3 v10.0
served as a basis to render backend modules or HTML-based output
in TYPO3 Backend.
Since TYPO3 v7, the new API via php:ModuleTemplate
can be used instead. The DocumentTemplate
class has been marked as deprecated.
Impact¶
Instantiating the DocumentTemplate
class will trigger a PHP E_USER_DEPRECATED
error.
Affected Installations¶
TYPO3 installations with third-party extensions adding backend modules using the DocumentTemplate API. These can typically be identified by extensions that "worked" but somehow looked ugly since TYPO3 v7 due to CSS and HTML changes.
Migration¶
Use ModuleTemplate API instead, which can be built like this in a typical non-Extbase Backend controller (e.g. in an action such as "overviewAction"):
$moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
$content = $this->getHtmlContentFromMyModule();
$moduleTemplate->setTitle('My module');
$moduleTemplate->setContent($content);
return $this->responseFactory->createResponse()
->withHeader('Content-Type', 'text/html; charset=utf-8')
->withBody($this->streamFactory->createStream($moduleTemplate->renderContent()));