appkr / fractal
处理复杂数据结构的输出,以便于API输出。
0.14.0
2016-07-21 09:56 UTC
Requires
- php: >=5.4
Requires (Dev)
- illuminate/contracts: ~5.0
- mockery/mockery: ~0.9
- pagerfanta/pagerfanta: ~1.0.0
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~1.5
- zendframework/zend-paginator: ~2.3
Suggests
- illuminate/pagination: The Illuminate Pagination component.
- pagerfanta/pagerfanta: Pagerfanta Paginator
- zendframework/zend-paginator: Zend Framework Paginator
- 0.14.0
- dev-master / 0.13.x-dev
- 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-fix-pagination-links-data-type
- dev-mediaholding-improved-json-api-support
- dev-scrutinizer
- dev-improved-l4-paginator
This package is not auto-updated.
Last update: 2024-09-28 18:05:15 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-dev
- HHVM
文档
Fractal有完整的文档http://fractal.thephpleague.com,由Jekyll提供。
在gh-pages分支中为此文档做出贡献。
待办事项
- 添加HAL序列化器
测试
$ phpunit
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。