vakazona/dto 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

vakazona/dto

最新稳定版本:v1.4

Composer 安装命令:

composer require vakazona/dto

包简介

A Data Transfer Object for PHP

README 文档

README

Contents

Installation

composer require vakazona/dto

Usage

use vakazona\Dto\DTO;

class TestDTO extends DTO
{
    public string $name;
    
    public ?string $lastName;
    
    public string|int $age;
    
    public bool $developer = true;
}

$data = new TestDTO([
    'name' => 'Valery',
    'age' => 23,
]);

$data->name; // Valery
$data->age; // 23
$data->developer; // true

Require

use vakazona\Dto\DTO;
use vakazona\Dto\Attributes\Required;

class TestDTO extends DTO
{
    #[Required]
    public string $price;
}

$data = new TestDTO([]);

Exceptions\InvalidDataException: The required property `price` is missing

Flexible

use vakazona\Dto\DTO;
use vakazona\Dto\Attributes\Flexible;

#[Flexible]
class TestDTO extends DTO
{
    public string $name;
}

$data = new TesDTO([
    'name' => 'Valery',
    'age' => 23,
]);

$data->toArray(); // ['name' => 'Valery', 'age' => '23'];

Custom DTO

Custom property

use vakazona\Dto\DTO;

class CustomPropertyDTO extends DTO
{
    public string $name;

    public int $age;

}

Main property

use vakazona\Dto\DTO;

class TestCustomDTO extends DTO
{
    public CustomPropertyDTO $customProperty;
}

Usage

$data = new TestCustomDTO([
            'customProperty' => new CustomPropertyDTO([
                'name' => 'Valera',
                'age' => 23
            ])
        ]);

Tests

vendor/bin/phpunit

or

composer test

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-09