Формы
класс Формы
Точка входа в компонент Формы.
Используйте этот класс для удобного создания новых фабрик форм:
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