lzakrzewski / symfony-form-generator
基于类元数据的“实时”创建表单的通用解决方案
0.0.3
2016-02-07 14:10 UTC
Requires
- php: >=5.5
- doctrine/annotations: ~1.0
- phpdocumentor/reflection-docblock: ~2.0
- phpdocumentor/type-resolver: ~0.1
- symfony/form: ~2.6
- symfony/validator: ~2.6
Requires (Dev)
- mathiasverraes/money: ~1.0
- phpunit/phpunit: ~4.8
- ramsey/uuid: ~3.0
- satooshi/php-coveralls: ^0.6.1
This package is not auto-updated.
Last update: 2024-09-14 18:26:13 UTC
README
本软件包增加了基于类元数据(如
Form
注释、- 类型提示、
- PHPDoc 注释、
- 验证器注释)生成
symfony
表单的功能。
创建的表单能够使用原始数据(boolean
、integer
、string
、array
、real
、double
、float
)提交。
示例
给定类的对象
use Lzakrzewski\SymfonyFormGenerator\Annotation\Form; use Symfony\Component\Validator\Constraints as Assert; class ObjectWithMixedMetadata { /** * @var bool */ public $propertyBoolean; /** * @Assert\Count(max="5") */ public $propertyArray; /** * @Form\Field("integer", options={"label"="Property Integer"}) */ public $propertyInteger; public $propertyDateTime; public $propertyUndefined; public function __construct($propertyBoolean, $propertyArray, $propertyInteger, \DateTime $propertyDateTime, $propertyUndefined) { $this->propertyBoolean = $propertyBoolean; $this->propertyArray = $propertyArray; $this->propertyInteger = $propertyInteger; $this->propertyDateTime = $propertyDateTime; $this->propertyUndefined = $propertyUndefined; } }
之后
$form = GeneratorFactory::createGenerator() ->generateFormBuilder(ObjectWithMixedMetadata::class) ->getForm();
将有 form
等效
use Lzakrzewski\SymfonyFormGenerator\Form\Type\GeneratorFormType; use Lzakrzewski\SymfonyFormGenerator\ObjectWithMixedMetadata; use Symfony\Component\Form\Forms; Forms::createFormFactory()->createBuilder() ->create('form', new GeneratorFormType(ObjectWithMixedMetadata::class)) ->add('propertyBoolean', 'checkbox') ->add('propertyArray', 'generator_array') ->add('propertyInteger', 'integer') ->add('propertyDateTime', 'generator_datetime') ->add('propertyUndefined', 'generator_string');
generator_array
类型扩展 collection
,generator_datetime
类型扩展 datetime
,generator_string
类型扩展 text
。
generator_*
类型是为更好地支持原始值而定义的自定义表单类型。
文档
主题