endroid / form-bundle
此包已被废弃且不再维护。未建议替代包。
Endroid Form Bundle for Symfony
1.1.0
2017-01-01 13:33 UTC
Requires
- php: >=5.4
- sonata-project/admin-bundle: ^3.2
Requires (Dev)
- phpunit/phpunit: ^4.0|^5.0
README
由 endroid 提供
Endroid FormBundle 允许用户通过 Sonata Admin Bundle 创建基本表单。它包括表单配置、结果存储、在表单填写时发送通知,甚至可以导出表单结果。
要求
- Symfony
安装
使用 Composer 安装此包。
$ composer require endroid/form-bundle
然后通过内核启用该包。
<?php // app/AppKernel.php public function registerBundles() { $bundles = [ // ... new Endroid\FormBundle\EndroidFormBundle(), ]; }
使用方法
通过 Sonata Admin 创建表单,可以直接在模板中渲染如下。
{{ render(controller('EndroidFormBundle:Form:show', { form: form })) }}
当表单正确填写时,会生成一个结果并触发表单成功事件。您可以通过 Sonata Admin 指定是否应存储此结果以及是否应发送确认邮件。
扩展
事件监听器
存在用于存储结果和发送确认邮件的事件监听器(取决于您的设置)。您可以通过添加自己的监听器或覆盖现有的任何监听器来扩展此功能。
/** * {@inheritdoc} */ public static function getSubscribedEvents() { return [FormSuccessEvent::NAME => 'myHandler']; } /** * My custom form success handler. * * @param FormSuccessEvent $event */ public function myHandler(FormSuccessEvent $event) { $result = $event->getResult(); $form = $result->getForm(); //... }
并通过服务容器进行注册。
acme.event_listener.my_listener: class: Acme\EventListener\MyListener tags: - { name: kernel.event_subscriber }
字段
可以通过扩展 Field 类、创建新字段的定义服务并为新字段添加 "endroid_form.field" 标签来添加新字段。
acme.field.my_field: class: Acme\Entity\MyField tags: - { name: endroid_form.field }
版本控制
版本号遵循 MAJOR.MINOR.PATCH 方案。向后兼容性破坏性更改将保持在最低限度,但请注意,这些更改可能发生。在生产中锁定依赖关系并在升级代码时测试您的代码。
许可证
此包采用 MIT 许可证。有关完整的版权和许可证信息,请查看与源代码一起分发的 LICENSE 文件。