softcomtecnologia / fractal
处理复杂数据结构的输出,以便API输出。
v1.0.2
2020-09-18 20:16 UTC
Requires
- php: >=7.1
Requires (Dev)
- doctrine/orm: ^2.7
- illuminate/contracts: ^7.0
- mockery/mockery: ~0.9
- pagerfanta/pagerfanta: ~1.0.0
- phpunit/phpunit: ^4.8.35 || ^7.5
- 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
- 1.0.x-dev
- v1.0.2
- v1.0.1
- v1.0.0
- dev-master / 0.20.x-dev
- 0.19.2
- 0.19.1
- 0.19
- 0.18.0
- 0.17.0
- 0.16.0
- 0.15.0
- 0.14.0
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.1
- 0.9.0
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.0
- 0.0.1
- dev-hotfix/tests-for-minimum-versions
- dev-fix/update-travis
- dev-maintainers-in-readme
- dev-feature/scope-reduction
- dev-feature/phpcs-circleci
- dev-next-changelog
This package is not auto-updated.
Last update: 2024-09-28 19:15:20 UTC
README
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)。有关更多信息,请参阅 许可证文件。