Skip to content

Solo Request HandlerType-safe Request DTOs

Transform HTTP requests into strictly typed DTOs with automatic validation, casting, and full IDE support.

Solo Request Handler

Quick Example ​

php
use Solo\RequestHandler\Attributes\Field;
use Solo\RequestHandler\Request;

final class CreateProductRequest extends Request
{
    #[Field(rules: 'required|string|max:255')]
    public string $name;

    #[Field(rules: 'required|numeric|min:0')]
    public float $price;

    #[Field(rules: 'nullable|integer|min:0')]
    public int $stock = 0;

    #[Field(generator: UuidGenerator::class)]
    public string $id;
}

// Usage in controller
$dto = $requestHandler->handle(CreateProductRequest::class, $request);

echo $dto->name;   // string - full IDE support
echo $dto->price;  // float - auto-casted
echo $dto->id;     // string - auto-generated UUID

Installation ​

bash
composer require solophp/request-handler

Requirements: PHP 8.2+, PSR-7 HTTP Message

Released under the MIT License.