Форма Symfony 2 в eZ Publish 5, интуиция CSRF
Я работаю над проектом eZ publish 5. Эта CMS основана на Symfony 2. Я создал форму без класса, как описано на странице tge: http://symfony.com/doc/current/book/forms.html
На eZ опубликовать 5 документов ( https://confluence.ez.no/display/EZP/Legacy+configuration+injection) я прочитал, что мне нужно установить для параметра намерения CSRF значение "legacy". Я не могу понять, как это сделать. Я попытался использовать метод add в моем formBuilder:
$this->createFormBuilder()->add('_token', 'csrf', array('intention'=>'legacy');
Но я получаю сообщение об ошибке "не удалось загрузить тип csrf".
Может ли кто-нибудь помочь мне в этом?
Благодарю.
1 ответ
Хорошо, я дал это попробовать.
Мой первый ответ на самом деле - вопрос: если вы не собираетесь выполнять какой-либо унаследованный код ядра в качестве продолжения своей формы, я думаю, вам не нужно заботиться о намерении.
Намерения между ядром Symfony и унаследованным ядром должны совпадать только в том случае, если загружено устаревшее ядро (в этом случае он проверит, есть ли токен и действителен ли он).
Если вам нужно использовать Legacy Kernel, вы можете установить намерение в legacy, передав пользовательские параметры формы:
$formOptions = array( 'intention' => 'legacy' );
$form = $this->createFormBuilder( null, $formOptions )
->add( 'text', 'text' )
->getForm();
Настройка намерения по умолчанию описана в http://symfony.com/doc/current/book/forms.html, но я бы не советовал этого делать, если только вы не собираетесь полагаться только на устаревшее ядро.