Feature: #107569 - PSR-14 event before renderable is rendered
See forge#107569
Description
A new PSR-14 event
Before
has been introduced. It serves as a replacement for the now
removed hook
$GLOBALS.
The new event is dispatched right before a renderable is rendered.
The event provides the following public properties:
$renderable: The form element.$form: The form runtime.Runtime
Example
An example event listener could look like this:
Example event listener class
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Form\Event\BeforeRenderableIsRenderedEvent;
final class BeforeRenderableIsRenderedEventListener
{
#[AsEventListener('my-extension/before-renderable-is-rendered')]
public function __invoke(BeforeRenderableIsRenderedEvent $event): void
{
$renderable = $event->renderable;
if ($renderable->getType() !== 'Date') {
return;
}
$date = $event->formRuntime[$renderable->getIdentifier()];
if ($date instanceof \DateTime) {
$event->formRuntime[$renderable->getIdentifier()] =
$date->format('Y-m-d');
}
}
}
Copied!
Impact
With the new
Before,
it is now possible to modify a renderable before it is rendered or adjust the
form runtime data before rendering.