81 lines
2.4 KiB
ReStructuredText
81 lines
2.4 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _breaking-107831-1761307521:
|
|
|
|
==========================================================
|
|
Breaking: #107831 - Removed `TypoScriptFrontendController`
|
|
==========================================================
|
|
|
|
See :issue:`107831`
|
|
|
|
Description
|
|
===========
|
|
|
|
All remaining properties have been removed from
|
|
:php:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController`, making the
|
|
class a readonly internal service used by the TYPO3 Core only.
|
|
|
|
The class will be fully removed in a later TYPO3 v14 release.
|
|
|
|
The following instance access patterns have been removed:
|
|
|
|
* `$GLOBALS['TSFE']`
|
|
* `$request->getAttribute('frontend.controller')`
|
|
* `$contentObjectRenderer->getTypoScriptFrontendController()`
|
|
|
|
All API methods that returned an instance of
|
|
:php-short:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` -
|
|
usually named :php:`getTypoScriptFrontendController()` or similar - have been
|
|
removed as well.
|
|
|
|
Impact
|
|
======
|
|
|
|
Any remaining direct or indirect usage of
|
|
:php-short:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` will
|
|
now result in a fatal PHP error.
|
|
|
|
Affected installations
|
|
======================
|
|
|
|
Extensions that still relied on properties or methods of
|
|
:php-short:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` are
|
|
affected.
|
|
|
|
The class was already marked *internal* and *breaking* in TYPO3 v13.
|
|
|
|
In particular, extensions that used
|
|
:php:`AbstractContentObject->getTypoScriptFrontendController()` can now access
|
|
the relevant data from the PSR-7 request object, for example:
|
|
|
|
.. code-block:: php
|
|
|
|
$pageInformation = $request->getAttribute('frontend.page.information');
|
|
|
|
Migration
|
|
=========
|
|
|
|
See :ref:`breaking-102621-1701937690` for a detailed list of removed properties
|
|
and their replacements.
|
|
|
|
As a specific example, old code that added additional header data like this:
|
|
|
|
.. code-block:: php
|
|
|
|
$frontendController = $request->getAttribute('frontend.controller');
|
|
$frontendController->additionalHeaderData[] = $myAdditionalHeaderData;
|
|
|
|
should now use:
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Core\Page\PageRenderer;
|
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
|
|
$pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
|
|
$pageRenderer->addHeaderData($myAdditionalHeaderData);
|
|
|
|
The same approach applies to :php:`additionalFooterData`.
|
|
|
|
.. index:: Frontend, NotScanned, ext:frontend
|