Spec-Zone.ru › Symfony 4.1

Формы

класс Формы

Точка входа в компонент Формы.

Используйте этот класс для удобного создания новых фабрик форм:

use Symfony\Component\Form\Forms;

$formFactory = Forms::createFormFactory();

$form = $formFactory->createBuilder()
    ->add('firstName', 'Symfony\Component\Form\Extension\Core\Type\TextType')
    ->add('lastName', 'Symfony\Component\Form\Extension\Core\Type\TextType')
    ->add('age', 'Symfony\Component\Form\Extension\Core\Type\IntegerType')
    ->add('gender', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', array(
        'choices' => array('Male' => 'm', 'Female' => 'f'),
    ))
    ->getForm();

Вы также можете добавить пользовательские расширения к фабрике форм:

$formFactory = Forms::createFormFactoryBuilder()
    ->addExtension(new AcmeExtension())
    ->getFormFactory();

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

$formFactory = Forms::createFormFactoryBuilder()
    ->addType(new PersonType())
    ->addType(new PhoneNumberType())
    ->addTypeExtension(new FormTypeHelpTextExtension())
    ->getFormFactory();

Поддержка компонента Валидатор обеспечивается расширением ValidatorExtension. Для корректной работы этому расширению необходим объект валидатора:

use Symfony\Component\Validator\Validation;
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;

$validator = Validation::createValidator();
$formFactory = Forms::createFormFactoryBuilder()
    ->addExtension(new ValidatorExtension($validator))
    ->getFormFactory();

Поддержка компонента Шаблонизация обеспечивается расширением TemplatingExtension. Для рендеринга форм этому расширению необходим объект PhpEngine. В качестве второго аргумента вы должны передать имена по умолчанию тем. Вот пример использования по умолчанию макета с тегами "

<

div>":

use Symfony\Component\Form\Extension\Templating\TemplatingExtension;

$formFactory = Forms::createFormFactoryBuilder()
    ->addExtension(new TemplatingExtension($engine, null, array(
        'FrameworkBundle:Form',
    )))
    ->getFormFactory();

Следующий пример демонстрирует, как включить макет "

<

table>":

use Symfony\Component\Form\Extension\Templating\TemplatingExtension;

$formFactory = Forms::createFormFactoryBuilder()
    ->addExtension(new TemplatingExtension($engine, null, array(
        'FrameworkBundle:Form',
        'FrameworkBundle:FormTable',
    )))
    ->getFormFactory();

Методы

static FormFactoryInterface createFormFactory()

Создаёт фабрику форм с настройками по умолчанию.

static FormFactoryBuilderInterface createFormFactoryBuilder()

Создаёт билдер фабрики форм с настройками по умолчанию.

Подробности

static FormFactoryInterface createFormFactory()

Создаёт фабрику форм с настройками по умолчанию.

Значение возврата

FormFactoryInterface Фабрика форм

static FormFactoryBuilderInterface createFormFactoryBuilder()

Создаёт билдер фабрики форм с настройками по умолчанию.

Значение возврата

FormFactoryBuilderInterface Билдер фабрики форм

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Form/Forms.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API