これは、githubのSymfony2リポジトリのFormEvents
クラスです。メインの記事 フォームイベントを使用してフォームを動的に生成する方法 からリンクされています。
これらのイベントがフローで呼び出されたときに正確に誰かが知っていますか?
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';
}
イベントには2つのタイプがあります。
DataEvent -フォームデータへの読み取り専用アクセス。 「Pre」および「Post」イベントは読み取り専用です。
FilterDataEvent -フォームデータを変更できるようにするイベント。
form.pre_bindDataEvent
は、データがフォームにバインドされる前にトリガーされます。 Symfony\Component\Form\Form::bind()
によってトリガーされます
form.post_bindDataEvent
は、データがフォームにバインドされた後にトリガーされます。 Symfony\Component\Form\Form::bind()
によってトリガーされます
form.pre_set_dataDataEvent
は、フィールドがデフォルトのデータで埋められる前にトリガーされます。 Symfony\Component\Form\Form::setData()
によってトリガーされます
form.post_set_dataDataEvent
は、フィールドがデフォルトのデータで埋められた後にトリガーされます。 Symfony\Component\Form\Form::setData()
によってトリガーされます
form.bind_client_dataFilterDataEvent
は、データがフォームにバインドされる前にトリガーされます。 Symfony\Component\Form\Form::bind()
によってトリガーされます
form.bind_norm_dataFilterDataEvent
データが正規化された後にトリガーされます。 Symfony\Component\Form\Form::bind()
によってトリガーされます。 _Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener
_を参照してください(例としてUrlType
によって追加されます)
form.set_dataFilterDataEvent
は、デフォルトのデータがバインドされているときにトリガーされます。 Symfony\Component\Form\Form::setData()
によってトリガーされます
これらのイベントがいつトリガーされるか、およびそれらをどのように使用できるかをよりよく理解するために、Formクラス自体をざっと見てみることをお勧めします。