Feature: #97451 - PSR-14 events for modifying backend page content

See forge#97451

Description

A new PSR-14 event \TYPO3\CMS\Backend\Controller\Event\AfterBackendPageRenderEvent has been introduced which serves as a direct replacement for the now removed $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/backend.php']['constructPostProcess'], $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/backend.php']['renderPreProcess'], and $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/backend.php']['renderPostProcess'] hooks.

The new event triggers after the page is rendered and includes the rendered page body. Listeners may overwrite the page string if desired.

Example

Registration of the event in your extension's Services.yaml:

MyVendor\MyPackage\MyEventListener:
  tags:
    - name: event.listener
      identifier: 'my-package/backend/after-backend-controller-render'

The corresponding event listener class:

use TYPO3\CMS\Backend\Controller\Event\AfterBackendPageRenderEvent;

final class MyEventListener
{
    public function __invoke(AfterBackendPageRenderEvent $event): void
    {
        $content = $event->getContent() . ' I was here';
        $event->setContent($content);
    }
}

Impact

It's now possible to modify the backend page using the new PSR-14 event AfterBackendPageRenderEvent.