A Symfony bundle that adds some usefull symfony/form integrations.
This bundle registers two symfony/serializer normalizers for form errors.
The most important normalizer. This normalizer supports submitted, invalid form.
The normalized data is an associative array with the following structure:
[
{
// 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
}
]
The param
key will contain, by default, the property path of the child form that the FormError originates from. This key will not exist if the error originates from the root form (e.g. invalid CSRF Token).
The "cause" key is intended to contain an error name based on the FormError cause.
You can customize the keys behaviour by registering a service that implements ParamResolverInterface or CauseResolverInterface.
If autoconfiguration is disabled, you have to tag the service with sbsedv_form.param_resolver
or sbsedv_form.cause_resolver
.
The normalizer uses tagged iterators, so you can set a "priority" attribute with the tag.
You can also customize the key names and type value with the normalizer context.
See FormErrorNormalizer.
This normalizer supports unsubmitted.
The normalized data is an associative array with the following structure:
[
{
"message": "The request body does not contain any usable data.",
"type": "invalid_request_error"
}
]
The error message is customizable via "request_body_is_empty" in the "sbsedv_form" translation domain.
You can also customize the key names and type value with the normalizer context.
See UnsubmittedFormNormalizer.
This bundle registers the following form types:
-
BooleanType
Converts boolean values to boolean type -
UuidTypeExtension
Extends the default UuidType with optional "as_string" and "nil_to_null" (NilUuid to null) options.
This bundle provides the following data transformers:
- CapitalizeStringDataTransformer (ucfirst)
- LowercaseStringDataTransformer (strtolower)
- UppercaseStringDataTransformer (strtoupper)