Подтвердить что ты не робот

Описание событий формы Symfony2?

Это класс FormEvents из репозитория Symfony2 в github. Это связано с основной статьей Как динамически генерировать формы с помощью событий формы.

Кто-нибудь знает, когда эти события вызывают в потоке?

namespace Symfony\Component\Form;

/**
 * @author Bernhard Schussek <[email protected]>
 */
final class FormEvents
{
    const PRE_BIND = 'form.pre_bind';
    const POST_BIND = 'form.post_bind';
    const PRE_SET_DATA = 'form.pre_set_data';
    const POST_SET_DATA = 'form.post_set_data';
    const BIND_CLIENT_DATA = 'form.bind_client_data';
    const BIND_NORM_DATA = 'form.bind_norm_data';
    const SET_DATA = 'form.set_data';
}
4b9b3361

Ответ 1

Существует два типа событий:

DataEvent - доступ только для чтения к данным формы. События "Pre" и "Post" доступны только для чтения.

FilterDataEvent - событие, которое позволяет изменять данные формы.

form.pre_bind DataEvent, когда данные привязаны к форме. Запущено Symfony\Component\Form\Form::bind()

form.post_bind DataEvent запускается после привязки данных к форме. Запущено Symfony\Component\Form\Form::bind()

form.pre_set_data​​STRONG > DataEvent запускается до заполнения полей данными по умолчанию. Запущено Symfony\Component\Form\Form::setData()

form.post_set_data​​STRONG > DataEvent запускается после заполнения полей данными по умолчанию. Запущено Symfony\Component\Form\Form::setData()

form.bind_client_data​​STRONG > FilterDataEvent запускается до того, как данные привязаны к форме. Запущено Symfony\Component\Form\Form::bind()

form.bind_norm_data​​STRONG > FilterDataEvent срабатывает после нормализации данных. Запущен Symfony\Component\Form\Form::bind(). См. Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener (добавлено в примере UrlType)

form.set_data​​STRONG > FilterDataEvent запускается, пока данные по умолчанию привязаны. Запущено Symfony\Component\Form\Form::setData()

Я бы порекомендовал выкрикивать вокруг самого класса Form, чтобы лучше понять, когда срабатывают эти события, и как вы можете их использовать.