steevanb / symfony-form-options-builder
使用对象代替数组构建 buildForm()
5.1.0
2024-05-09 08:43 UTC
Requires
- php: ^7.1||^8.0
- symfony/form: ^3.0||^4.0||^5.0||^6.0||^7.0
Requires (Dev)
- doctrine/orm: ^2.8
- symfony/doctrine-bridge: ^6.3
- symfony/security-csrf: ^6.3
This package is auto-updated.
Last update: 2024-09-09 09:17:41 UTC
README
symfony-form-options-builder
它帮助您编写 Symfony FormType,提供了一些特性和方法,在 buildForm() 中使用对象而不是带有神秘键的数组,以及其他功能。
面向对象的 FormType
FormType::buildForm() 面向对象而不是数组
示例
namespace FooBundle\Form\Type; use Steevanb\SymfonyFormOptionsBuilder\OptionsBuilder\EmailOptionsBuilder; use Steevanb\SymfonyFormOptionsBuilder\OptionsBuilder\TextOptionsBuilder; use Symfony\Component\Form\Extension\Core\Type\TextType; class BarType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { # Since PHP 5.5, you can use FooClass::class $builder->add('field_text', TextType::class, TextOptionsBuilder::create()->asArray()); # Since PHP 5.6, you can use the variadic syntax. asVariadic() parameter is field name. $builder->add( ...EmailOptionsBuilder::create() ->setRequired(false) ->setPlaceHolder('default@mail.com') ->setTrim(false) ->asVariadic('field_email') ); } }
BlockPrefixTrait
添加 getBlockPrefix(),以确保始终为 FormType 的 getBlockPrefix() 方法返回相同的语法:form_type_formtypeclassname
示例
namespace FooBundle\Form\Type; use Steevanb\SymfonyFormOptionsBuilder\BlockPrefixTrait; class BarType extends AbstractType { # Use this trait to define getBlockPrefix() required method. It will return form_type_bar use BlockPrefixTrait; }