composer require netmex/request-bundleTo use the RequestBundle, create a DTO class that extends Netmex\RequestBundle\Request\AbstractRequest.
You can use Symfony’s #[Assert\...] attributes to define validation rules per property.
<?php
namespace App\Request;
use Netmex\RequestBundle\Request\AbstractRequest;
use Symfony\Component\Validator\Constraints as Assert;
class CustomRequest extends AbstractRequest
{
#[Assert\NotBlank()]
public string $exampleField;
}<?php
namespace App\Controller;
use App\DTO\CustomRequest;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ExampleController
{
#[Route('/example', name: 'app_example')]
public function index(CustomRequest $request): Response
{
// Validated and sanitized content
$results = $request->content();
return new Response($results);
}
}Use content() to retrieve all fields.
$request->content();You can also fetch a single field using the get(string $key, ?string $default = null): Parameter.
// Raw value (with optional fallback)
$request->get('fieldName', 'default');src/
├── Request/
│ └── YourDTO.php
└── Controller/
└── YourController.php
try {
$data = $request->getContent()->validate();
} catch (ValidationFailedException $e) {
return new JsonResponse(['errors' => (string) $e->getViolations()], 400);
}See Symfony Validation Constraints for available options.