Download the PHP package n7/symfony-http-bundle without Composer
On this page you can find all versions of the php package n7/symfony-http-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package symfony-http-bundle
About
This bundle allows you to describe requests as classes and inject them into the controller. If a request fails validation, an exception with validation errors will be thrown, which can be handled and the response returned in the required format. If the request is valid, you will have an object with a well-described structure in the controller, all that remains is to process the request.
Handling validation errors
Bundle comes with a listener that converts validation errors into a response, you can use it as an example to handle errors in the format you need. To use it, add the following lines to your config/services.yaml
:
This listener will return validation errors in the following json format (example):
Requests injection
HTTP requests query parameters always come as strings, to validate them correctly, they are soft casted according to type annotations in request class.
Request class:
Controller action:
Response for request without parameters:
If request class implements the RequestPayloadInterface
, the request type will be determined automatically (get/form-data/json). If you want to specify exactly what type of request to use, then you can implement one of these interfaces:
RequestQueryParametersInterface
- query parameters (GET request)RequestFormDataInterface
- form data (POST/PUT/... requests)RequestJsonPayloadInterface
- json (POST/PUT/... requests)
Mutators
In case you need to transform the field value before validation, you can make a custom mutator (example):
Nested objects and array of objects
The example below shows how to work with nested objects and arrays of nested objects:
Arrays
arrays of integer/float/bool must have @var
annotation describing their inner
elements scalar type. It needed for soft type casting before validation. Available values: int[]
,
float[]
, boolean[]
, string[]
.
Example:
AllowExtraFields and AllowMissingFields
Validatior allowExtraFields
and allowMissingFields
parameters can be overwritten with annotations:
All versions of symfony-http-bundle with dependencies
ext-json Version *
symfony/http-foundation Version ^6.0|^7.0
symfony/http-kernel Version ^6.0|^7.0
symfony/dependency-injection Version ^6.0|^7.0
symfony/config Version ^6.0|^7.0
symfony/validator Version ^6.0|^7.0
n7/symfony-validators-bundle Version ^2.0
jms/serializer Version ^3.10