netmex / request-bundle
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- symfony/framework-bundle: ^7.2
- symfony/serializer-pack: ^1.3
- symfony/validator: ^7.2
This package is not auto-updated.
Last update: 2025-06-11 07:26:06 UTC
README
Installation
composer require netmex/request-bundle
Usage
To 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.
Example DTO
<?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; }
Injecting the DTO into a Controller
<?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); } }
Accessing Fields
All fields
Use content()
to retrieve all fields.
$request->content();
Single field
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');
Recommended Directory Layout
src/
├── Request/
│ └── YourDTO.php
└── Controller/
└── YourController.php
Exception Handling
try { $data = $request->getContent()->validate(); } catch (ValidationFailedException $e) { return new JsonResponse(['errors' => (string) $e->getViolations()], 400); }
More about Constraints
See Symfony Validation Constraints for available options.