jackardios/laravel-data

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

资助包维护!
spatie

2.0.8 2022-08-20 04:05 UTC

This package is auto-updated.

Last update: 2024-09-20 08:31:00 UTC


README

本包是非官方的分支,源自 spatie/laravel-data,为了与php 8.0兼容而制作。

强大的Laravel数据对象

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status 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版本

支持我们

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

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

文档

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

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

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

鸣谢

许可证

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