lostedboy / symfony-form-standalone
Symfony 表单独立使用包装器
dev-master
2019-09-30 12:55 UTC
Requires
- symfony/form: ^3.2 || ^4.0
- symfony/templating: ^3.2 || ^4.0
This package is not auto-updated.
Last update: 2024-09-24 13:30:13 UTC
README
这个库允许在不使用 symfony 框架且不依赖其依赖的情况下独立使用 symfony 表单。
当前依赖列表
- symfony/form
- symfony/templating
安装
composer require lostedboy/symfony-form-standalone
基本用法
创建表单
<?php // index.php use Symfony\Form\Standalone\FormBuilder; use Symfony\Form\Standalone\Templating\FormTemplating; // create form builder $formBuilder = new FormBuilder(); // create form $form = $formBuilder->create($formType, $mappedEntity); ... // create templating handler $formTemplating = new FormTemplating(); // get templating engine $templating = $formTemplating->getTemplating(); // create form view $formView = $form->createView(); // render form partial echo $templating->render('form.html.php', array('form' => $formView));
渲染表单(见: Symfony 表单渲染)
// form.html.php <?php echo $view['form']->form($form) ?>
渲染自定义
<?php // index.php use Symfony\Form\Standalone\Templating\FormTemplating; $formTemplating = new FormTemplating( // register directories with forms usages here [ __DIR__.'/directory/with/form/usages' ], // put form theme templates in some directory // register this directory in FormTemplating [ __DIR__.'/directory/with/form/themes' ] );
遵循 Symfony 指南
翻译
可以使用任何自定义翻译器。它应该实现 Symfony\Form\Standalone\Translation\TranslatorInterface
<?php // index.php use Symfony\Form\Standalone\Templating\FormTemplating; $formTemplating = new FormTemplating([], [], new CustomFormTranslator());
验证
可以使用 Symfony 验证组件
安装 composer require symfony/validator
注册验证扩展
<?php // index.php use Symfony\Form\Standalone\FormBuilder; use Symfony\Component\Validator\Validation; // create form builder $formBuilder = new FormBuilder(); // configure validator $validator = Validation::createValidatorBuilder() ->addYamlMappings([ // paths to validation files (optional) __DIR__ . '/config/validation/some_entity.yml' ]) ->getValidator(); // register extension $formBuilder->addExtension(new ValidatorExtension($validator);
许可协议
此软件包受 MIT 许可协议的约束