angrybytes / fractal
处理复杂数据结构的输出,使其适合API输出。
0.20.0
2021-12-22 12:20 UTC
Requires
- php: >=7.4
Requires (Dev)
- doctrine/orm: ^2.5
- illuminate/contracts: ~5.0
- mockery/mockery: ^1.4.4
- pagerfanta/pagerfanta: ~1.0.0
- phpunit/phpunit: ^9.5.8
- squizlabs/php_codesniffer: ~1.5|~2.0|~3.4
- zendframework/zend-paginator: ~2.3
Suggests
- illuminate/pagination: The Illuminate Pagination component.
- pagerfanta/pagerfanta: Pagerfanta Paginator
- zendframework/zend-paginator: Zend Framework Paginator
This package is not auto-updated.
Last update: 2024-09-26 23:55:29 UTC
README
注意:这是一个Angry Bytes维护的分支,用于与较新版本的PHP保持兼容。
Fractal为复杂数据输出提供了表示和转换层,如RESTful API中的输出,与JSON配合得非常好。将其视为JSON/YAML等的视图层。
在构建API时,人们通常会直接从数据库中获取内容并传递给json_encode()
。这可能适用于“简单”的API,但如果它们被公众使用或被移动应用程序使用,这会导致输出不一致。
目标
- 在源数据和输出之间创建一个防护层,以便架构变更不会影响用户
- 系统地类型转换数据,以避免使用
foreach()
和(bool)
遍历一切 - 为复杂数据结构包含(即嵌入、嵌套或侧加载)关系
- 支持HAL和JSON-API等标准,但同时也允许自定义序列化
- 支持数据结果的分页,适用于小型和大型数据集
- 通常简化了非平凡API中的数据输出复杂性
此软件包符合PSR-1、PSR-2和PSR-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
文档
在gh-pages分支中为此文档做出贡献。
待办事项
- 添加HAL序列化器
测试
$ phpunit
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
维护者
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。