solophp/request-handler

Robust request validation & authorization layer for HTTP inputs with type-safe handlers and modern PHP 8+ architecture

Installs: 34

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/solophp/request-handler

v2.1.0 2025-12-30 06:20 UTC

This package is auto-updated.

Last update: 2026-01-15 18:09:26 UTC


README

Type-safe Request DTOs for PHP 8.2+ with automatic validation, type casting, and full IDE support.

Latest Version on Packagist PHP Version License

Features

  • 🎯 Attribute-based DTOs — Define request structures using #[Field] attributes
  • 🔄 Automatic Type Casting — Built-in support for int, float, bool, string, array, DateTime
  • ✅ Validation Rules — Expressive rules with route parameter placeholders
  • âš¡ Generators — Auto-generate UUIDs, sequences, and custom values
  • 🔧 Pre/Post Processing — Transform data before validation or after casting
  • 📦 Field Grouping — Organize fields into logical groups

Installation

composer require solophp/request-handler

Quick Example

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;
}

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

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

Documentation

📖 Full Documentation

Requirements

  • PHP 8.2+
  • PSR-7 HTTP Message implementation
  • Validator implementing Solo\Contracts\Validator\ValidatorInterface

We recommend solophp/validator.

License

MIT License. See LICENSE for details.