Формы
класс Формы
Точка входа в компонент Формы.
Используйте этот класс для удобного создания новых фабрик форм:
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'), 'choicesasvalues' => true, )) ->getForm();
Также можно добавить пользовательские расширения к фабрике форм:
$formFactory = Forms::createFormFactoryBuilder()
->addExtension(new AcmeExtension())
->getFormFactory();
Если вы создаете пользовательские типы форм или расширения типов, рекомендуется создавать собственные расширения, которые лениво загружают эти типы и расширения типов. В проектах, где производительность не так важна, вы также можете передать их напрямую фабрике форм:
$formFactory = Forms::createFormFactoryBuilder()
->addType(new PersonType())
->addType(new PhoneNumberType())
->addTypeExtension(new FormTypeHelpTextExtension())
->getFormFactory();
Поддержка компонента Validator обеспечивается расширением ValidatorExtension. Это расширение требует объекта валидатора для корректной работы:
use Symfony\Component\Validator\Validation;
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
$validator = Validation::createValidator(); $formFactory = Forms::createFormFactoryBuilder() ->addExtension(new ValidatorExtension($validator)) ->getFormFactory();
Поддержка компонента Templating обеспечивается расширением TemplatingExtension. Это расширение требует объекта PhpEngine для рендеринга форм. В качестве второго аргумента вы должны указать имена по умолчанию тем. Вот пример использования стандартной разметки с тегами "
use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
$formFactory = Forms::createFormFactoryBuilder() ->addExtension(new TemplatingExtension($engine, null, array( 'FrameworkBundle:Form', ))) ->getFormFactory();
Следующий пример показывает, как включить разметку "
| static ФорматFactoryInterface | createFormFactory() Создает фабрику форм с конфигурацией по умолчанию. | |
| static ФорматFactoryBuilderInterface | createFormFactoryBuilder() Создает билдер фабрики форм с конфигурацией по умолчанию. |
Подробности
static ФорматFactoryInterface createFormFactory()
Создает фабрику форм с конфигурацией по умолчанию.
Возвращаемое значение
| ФорматFactoryInterface | Фабрика форм |
static ФорматFactoryBuilderInterface createFormFactoryBuilder()
Создает билдер фабрики форм с конфигурацией по умолчанию.
Возвращаемое значение
| ФорматFactoryBuilderInterface | Билдер фабрики форм |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/Form/Forms.html