TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,80 @@
.. 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