izisoft/laravel-data

创建统一资源和数据传输对象


README

Laravel的强大数据对象

Latest Version on Packagist Tests PHPStan Check & fix styling Total Downloads

此包允许创建丰富的数据对象,可以以各种方式使用。使用此包,您只需描述一次您的数据

  • 而不是表单请求,您可以使用数据对象
  • 而不是API转换器,您可以使用数据对象
  • 而不是手动编写TypeScript定义,您可以使用... 🥁 数据对象

一个laravel-data特定的对象只是一个继承自Data的普通PHP对象

use Spatie\LaravelData\Data;

class SongData extends Data
{
    public function __construct(
        public string $title,
        public string $artist,
    ) {
    }
}

通过继承Data,您将启用许多新功能,如

  • 自动将数据对象转换为资源(如Laravel API资源)
  • 使用懒属性仅转换数据对象的请求部分
  • 自动从请求数据创建数据对象并进行验证
  • 自动解析数据对象中属性的验证规则
  • 使您能够从任何类型构造数据对象
  • 在创建时自动验证数据对象
  • 从您的数据对象生成TypeScript定义,您可以在前端使用
  • 将数据对象保存为Eloquent模型属性
  • 还有更多...

您为什么要使用这个包?

  • 您有信心,当数据从您的应用离开并再次从前端返回时,数据是类型化的,这大大减少了错误
  • 您不需要三次(在资源中、在数据传输对象中以及在请求验证中)编写相同的属性
  • 您需要编写的验证规则要少得多,因为它们通过PHP的类型系统很明显
  • 您会免费获得数据对象的TypeScript版本

您是视觉学习者吗?

在本届Laracon会议上,您将看到Laravel Data的介绍

支持我们

我们投入了大量资源来创建一流的开放式源代码包。您可以通过购买我们的付费产品之一来支持我们。

我们非常感谢您从您家乡寄来明信片,说明您正在使用我们哪些包。您可以在我们的联系页面上找到我们的地址。我们将在我们的虚拟明信片墙上发布收到的所有明信片。

文档

您可以在专门的文档网站上找到完整的文档。

测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请参阅我们的安全策略,了解如何报告安全漏洞。

鸣谢

许可协议

MIT 许可协议 (MIT)。请参阅许可文件获取更多信息。