---
title: "BeforeFormDefinitionCreatesEvent"
manual: "LIA Form"
version: "2.2"
permalink: "https://docs.typo3.org/permalink/lia/lia_form:beforeformdefinitioncreatesevent@2.2"
source: "Events/BeforeFormDefinitionCreatesEvent.rst"
rendered: "2026-09-29T13:27:41+00:00"
---

# BeforeFormDefinitionCreatesEvent {#beforeformdefinitioncreatesevent}

This event is dispatched in the ExtendedArrayFormFactory and provide the possibility
to manipulate the form configuration before FormDefinition class is created.

## Attributes {#attributes}

-   **formDefintionConfigArray**

    -   *Type:* array
    -   *Required:* true

    This is the configuration array of the form definition.

-   **request**

    -   *Type:* ServerRequestInterface
    -   *Required:* true

    > [!WARNING]
    > **Attention**
    >
    > This attribute is readonly.

    This is the current server request object.

-   **renderedForms**

    -   *Type:* integer
    -   *Required:* true

    > [!WARNING]
    > **Attention**
    >
    > This attribute is readonly.

    This is the count of rendered form on the current page.

## Subscribe this event {#subscribe-this-event}

First create an EventListener class in your Extension. It may look like this.

**EXT:my_extension/Classes/EventListener/BeforeFormDefinitionCreatesEventListener.php**

```php
<?php
declare(strict_types=1);

namespace MY\MyExtension\EventListener;

use LIA\LiaForm\Event\BeforeFormDefinitionCreatesEvent;

final class BeforeFormDefinitionCreatesEventListener {

    /**
    * Manipulate the form configuration by a custom logic.
    *
    * @param BeforeFormDefinitionCreatesEvent $event
    * @return void
    */
    public function __invoke(BeforeFormDefinitionCreatesEvent $event): void
    {
        $formConfiguration = $event->getFormDefinitionConfigArray();

        $formConfiguration['renderingOptions']['submitButtonLabel'] = 'Send';

        // The configuration is an array, so it is copied on read: the setter
        // is what makes the change take effect.
        $event->setFormDefinitionConfigArray($formConfiguration);
    }
}
```

Now register this EventListener in your `Services.yaml`.

**EXT:my_extension/Configuration/Services.yaml**

```yaml
MY\MyExtension\EventListener\BeforeFormDefinitionCreatesEventListener:
  tags:
    - name: event.listener
      identifier: 'my-extension/before-form-definition-creates-event'
      event: LIA\LiaForm\Event\BeforeFormDefinitionCreatesEvent
```
