定制 digitalpi/laravel-dto-validator 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

digitalpi/laravel-dto-validator

最新稳定版本:1.0.7

Composer 安装命令:

composer require digitalpi/laravel-dto-validator

包简介

DTO injector and validator with attributes, inspired by Spring Boot bean validation.

README 文档

README

This package allows you to use DTOs with attribute-based validation, just like in Spring Boot.

🚀 Features

  • Auto-inject DTOs into controllers from Request
  • Validate with PHP 8+ attributes (like #[Rules([])])
  • UploadedFile support

📦 Installation

composer require digitalpi/laravel-dto-validator

🧩 Setup

Register the middleware in your app/bootstrap/app.php:

->withMiddleware(function (Middleware $middleware): void {
        $middleware->web(append: [
            \DigitalPi\DtoValidator\Middleware\InjectDtoMiddleware::class,
        ]);
        //or
        $middleware->api(append: [
            \DigitalPi\DtoValidator\Middleware\InjectDtoMiddleware::class,
        ]);
    })

📁 Example

use DigitalPi\DtoValidator\Attributes\Rules;
use Illuminate\Http\UploadedFile;

class UserDTO
{
    #[Rules(['required'])]
    public ?string $username;

    #[Rules(['required'])]
    public ?string $phone;

    #[Rules(['required', 'file', 'mimes:jpg,png'])]
    public ?UploadedFile $avatar;
}
use App\DTO\UserDTO;
use DigitalPi\DtoValidator\DtoValidator;

class UserController
{
    public function store(UserDTO $dto, DtoValidator $validator)
    {
        $validator->validate($dto);
        $path = $dto->avatar->store('avatars');

        return response()->json([
            'username' => $dto->username,
            'stored' => $path,
        ]);
    }
}

✅ Requirements

  • PHP 8.1+
  • Laravel 10 or 11 or 12

统计信息

  • 总下载量: 741
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-06-17