bethinkpl/fractal

处理复杂数据结构的输出,以便进行API输出。

0.20.1.1 2022-10-05 16:49 UTC

README

Latest Version Software License The PHP League Tests Total Downloads

Fractal为复杂数据输出提供了一种展示和转换层,例如在RESTful API中找到的,并且与JSON配合得非常好。将其视为JSON/YAML等的数据视图层。

当构建API时,人们通常会直接从数据库中获取数据并传递给json_encode()。这可能适用于“简单”的API,但如果它们被公众使用或被移动应用使用,这很快会导致输出不一致。

目标

  • 在源数据和输出之间创建一个保护层,以便架构更改不会影响用户
  • 系统地转换数据类型,以避免遍历foreach()和将所有内容转换为(bool)
  • 包含(也称为嵌入、嵌套或旁加载)复杂数据结构的关系
  • 与HAL和JSON-API等标准一起工作,但同时也允许自定义序列化
  • 支持数据结果分页,适用于小型和大型数据集
  • 一般简化了在非简单API中输出数据的微妙复杂性

此包符合PSR-1PSR-2PSR-4标准。如果您注意到合规性疏忽,请通过拉取请求发送补丁。

安装

通过Composer

$ composer require league/fractal

需求

此版本支持的PHP版本如下

>= PHP 7.4

文档

Fractal有完整的文档,由Jekyll提供。

gh-pages分支中为此文档做出贡献。

待办事项

  • 添加HAL序列化器

测试

$ phpunit

贡献

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

维护者

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件