Deprecation: #91012 - Various hooks related to TypoScriptFrontendController¶
See forge#91012
Description¶
The following hooks related to class TypoScriptFrontendController
and frontend-rendering have been marked as deprecated:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']
The following methods have been marked as deprecated as well, as they only contain code relevant for executing the hooks:
TypoScriptFrontendController->isOutputting()
TypoScriptFrontendController->processContentForOutput()
Impact¶
If third-party extensions are using the hooks, a PHP E_USER_DEPRECATED
error will be triggered when the hook is executed.
Calling the two methods above will also trigger a PHP E_USER_DEPRECATED
error.
Affected Installations¶
TYPO3 installations with custom extensions using the hooks or mentioned above, which is common if they haven't been using PSR-15 middlewares or other hooks instead.
Migration¶
The hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']
should be replaced by the $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']
hook
to index pages. However, please note that $TSFE->content
might contain UTF-8 content now,
instead of content already converted to the defined character set related to metaCharset
TypoScript property.
Since TYPO3 v9, the emitter of HTTP responses is based on PSR-7, the hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']
can be removed, as
TYPO3 can be configured via PSR-15 middlewares to define whether
page content should be emitted / rendered or not.
The hook to dynamically replace content via $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']
is removed as it serves no purpose for TYPO3 Core anymore. If content should be dynamically modified, use a PSR-15 middleware instead.
The hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']
is not needed as this can be built via a PSR-15 middleware instead, and
all content is returned via the RequestHandler of TYPO3 Frontend.
Extensions using hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']
should
be converted to PSR-15 middlewares, as this allows to modify content and headers of a PSR-7 Response object.
The method TypoScriptFrontendController->isOutputting()
is obsolete and can be removed in third-party code.
The same applies to TypoScriptFrontendController->processContentForOutput()
which should only be used to trigger
legacy hooks still applied in the system.