sbsedv / form-bundle
一个添加了一些有用的 Symfony/form 集成的 Symfony 扩展包。
Requires
- php: ^8.2
- symfony/form: ^6.1 || ^7.0
- symfony/framework-bundle: ^6.1 || ^7.0
- symfony/security-csrf: ^6.1 || ^7.0
- symfony/serializer: ^6.1 || ^7.0
- symfony/translation: ^6.1 || ^7.0
- symfony/uid: ^6.1 || ^7.0
- symfony/validator: ^6.1 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.4
- phpstan/phpstan-symfony: ^1.1
- symfony/doctrine-bridge: ^6.3 || ^7.0
README
sbsedv/form-bundle
一个 Symfony 扩展包,添加了一些有用的 symfony/form 集成。
错误规范器
此扩展包注册了两个 symfony/serializer 规范器,用于表单错误。
FormErrorNormalizer
最重要的规范器。此规范器支持已提交、无效的表单。
规范化的数据是一个具有以下结构的关联数组
[ { // Each FormError object has its own entry "message": "The FormError object message", "type": "invalid_request_error", "param": "first_name", // OPTIONAL "cause": "is_blank_error" // OPTIONAL } ]
param
键默认将包含从 FormError 源出的子表单的属性路径。如果错误源于根表单(例如无效的 CSRF Token),则此键不存在。
"cause" 键旨在包含基于 FormError 原因的错误名称。
您可以通过注册一个实现 ParamResolverInterface 或 CauseResolverInterface 的服务来自定义键的行为。
如果禁用了自动配置,您必须将服务标记为 sbsedv_form.param_resolver
或 sbsedv_form.cause_resolver
。规范器使用标记迭代器,因此您可以使用标记设置“优先级”属性。
您还可以使用规范器上下文自定义键名称和类型值。
请参阅 FormErrorNormalizer。
UnsubmittedFormNormalizer
此规范器支持未提交。
规范化的数据是一个具有以下结构的关联数组
[ { "message": "The request body does not contain any usable data.", "type": "invalid_request_error" } ]
错误消息可以通过“sbsedv_form”翻译域中的“request_body_is_empty”来自定义。
您还可以使用规范器上下文自定义键名称和类型值。
请参阅 UnsubmittedFormNormalizer。
表单类型
此扩展包注册了以下表单类型
-
BooleanType
将布尔值转换为布尔类型 -
UuidTypeExtension
扩展默认的 UuidType,带可选的 "as_string" 和 "nil_to_null"(NilUuid 到 null)选项。
数据转换器
此扩展包提供了以下数据转换器
- CapitalizeStringDataTransformer(ucfirst)
- LowercaseStringDataTransformer(strtolower)
- UppercaseStringDataTransformer(strtoupper)