TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+78
@@ -0,0 +1,78 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-97862-1657195630:
|
||||
|
||||
===================================================================
|
||||
Breaking: #97862 - Hooks related to generating page content removed
|
||||
===================================================================
|
||||
|
||||
See :issue:`97862`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The existing TYPO3 hooks in the process of generating a TYPO3 Frontend page
|
||||
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']`
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-all']`
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['usePageCache']`
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['insertPageIncache']`
|
||||
|
||||
have been removed. These hooks have been used to execute custom PHP code after
|
||||
a page is generated in the TYPO3 frontend and ready to be stored in cache.
|
||||
|
||||
Due to the removal of the hooks and the introduction of the new PSR-14 events
|
||||
the method signature of :php:`TypoScriptFrontendController->generatePage_postProcessing()`
|
||||
has been changed. The method now requires a :php:`ServerRequestInterface` as first
|
||||
argument.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extension code that hooks into these places will not be executed anymore in
|
||||
TYPO3 v12+.
|
||||
|
||||
Extension code calling :php:`TypoScriptFrontendController->generatePage_postProcessing()`
|
||||
without providing a :php:`ServerRequestInterface` as first argument
|
||||
will trigger a PHP `ArgumentCountError`.
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
TYPO3 installations with custom extensions using these hooks such as static file
|
||||
generation or modifying the page content cache, which is highly likely in
|
||||
third-party extensions. The extension scanner will detect usages as
|
||||
strong match.
|
||||
|
||||
Extensions, manually calling :php:`TypoScriptFrontendController->generatePage_postProcessing()`
|
||||
without providing a :php:`ServerRequestInterface` as first argument. The
|
||||
extension scanner will detect usages as weak match.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use one of the two newly introduced
|
||||
:doc:`PSR-14 events <../12.0/Feature-97862-NewPSR-14EventsForManipulatingFrontendPageGenerationAndCacheBehaviour>`:
|
||||
|
||||
* :php:`TYPO3\CMS\Frontend\Event\AfterCacheableContentIsGeneratedEvent`
|
||||
* :php:`TYPO3\CMS\Frontend\Event\AfterCachedPageIsPersistedEvent`
|
||||
|
||||
Extensions using the hooks can be made compatible with TYPO3 v11 and TYPO3 v12
|
||||
by registering a PSR-14-based event listener while keeping the legacy hook
|
||||
in place.
|
||||
|
||||
The :php:`AfterCacheableContentIsGeneratedEvent` acts as a replacement for
|
||||
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']`
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-all']`
|
||||
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['usePageCache']`
|
||||
|
||||
whereas the :php:`AfterCachedPageIsPersistedEvent` is the replacement for
|
||||
|
||||
:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['insertPageIncache']`.
|
||||
|
||||
Provide a :php:`ServerRequestInterface` as first argument when calling
|
||||
:php:`TypoScriptFrontendController->generatePage_postProcessing()` in custom
|
||||
extension code.
|
||||
|
||||
.. index:: Frontend, PHP-API, FullyScanned, ext:frontend
|
||||
Reference in New Issue
Block a user