angrybytes/fractal

处理复杂数据结构的输出,使其适合API输出。

0.20.0 2021-12-22 12:20 UTC

README

Latest Version Software License The PHP League Tests Coverage Status Quality Score Total Downloads

注意:这是一个Angry Bytes维护的分支,用于与较新版本的PHP保持兼容。

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 5.4
  • PHP 5.5
  • PHP 5.6
  • PHP 7.0
  • PHP 7.1
  • PHP 7.2
  • HHVM

文档

Fractal拥有由Jekyll提供的完整文档

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

待办事项

  • 添加HAL序列化器

测试

$ phpunit

贡献

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

维护者

鸣谢

许可证

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