Feature: #102067 - PSR-14 BeforeTcaOverridesEvent

See forge#102067

Description

A new PSR-14 event \TYPO3\CMS\Core\Configuration\Event\BeforeTcaOverridesEvent has been introduced, enabling developers to listen to the state between loaded base TCA and merging of TCA overrides.

Example

<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\EventListener;

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\Configuration\Event\BeforeTcaOverridesEvent;

final class AddTcaBeforeTcaOverrides
{
    #[AsEventListener('my-vendor/my-extension/before-tca-overrides')]
    public function __invoke(BeforeTcaOverridesEvent $event): void
    {
        $tca = $event->getTca();
        $tca['tt_content']['columns']['header']['config']['max'] = 100;
        $event->setTca($tca);
    }
}
Copied!

Impact

The new PSR-14 event can be used to dynamically generate TCA and add it as additional base TCA. This is especially useful for "TCA generator" extensions, which add TCA based on another resource, while still enabling users to override TCA via the known TCA overrides API.

Note $GLOBALS['TCA'] is not set at this point. Event listeners can only work on the TCA coming from $event->getTca() and must not access $GLOBALS['TCA'].