.. include:: /Includes.rst.txt .. _breaking-102715-1703254781: =================================================================== Breaking: #102715 - Frontend "determineId()" related events changed =================================================================== See :issue:`102715` Description =========== With the continued refactoring of :php:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController`, the following events have been adapted: * :php:`\TYPO3\CMS\Frontend\Event\BeforePageIsResolvedEvent` * :php:`\TYPO3\CMS\Frontend\Event\AfterPageWithRootLineIsResolvedEvent` * :php:`\TYPO3\CMS\Frontend\Event\AfterPageAndLanguageIsResolvedEvent` The three events no longer retrieve an instance of :php:`TypoScriptFrontendController`, the getter methods :php:`getController()` have been removed: The controller is instantiated *after* the events have been dispatched, event listeners can no longer work with this object. Instead, the events now contain an instance of the new :abbr:DTO (Data Transfer Object)` :php:`\TYPO3\CMS\Frontend\Page\PageInformation`, which can be retrieved and manipulated by event listeners if necessary. Impact ====== Calling :php:`getController()` by consumers of above events will raise a fatal PHP error. Also note the events may not be dispatched anymore when the middleware :php:`\TYPO3\CMS\Frontend\Middleware\TypoScriptFrontendInitialization` creates early responses. Affected installations ====================== Those events are in place for a couple of special cases during early frontend rendering. Most instances will not be affected, but some extensions may register event listeners. Migration ========= Use method :php:`getPageInformation()` instead to retrieve calculated page state at this point in the frontend rendering chain. Event listeners that manipulate that object should set it again within the event using :php:`setPageInformation()`. In case middleware :php:`TypoScriptFrontendInitialization` no longer dispatches an event when it created an early response on its own, an own middleware can be added around that middleware to retrieve and further manipulate a response if needed. .. index:: Frontend, PHP-API, PartiallyScanned, ext:frontend