joskfg / graphql-bulk-resolver
GraphQL 批量解析器
0.4
2018-09-26 11:49 UTC
Requires
- php: >=7.0
- webonyx/graphql-php: ^0.12
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.4
- infection/infection: ^0.8.1
- mockery/mockery: ^1.0
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^6.0
This package is auto-updated.
Last update: 2024-09-17 10:44:10 UTC
README
用于避免在使用 N+1 问题 的 trait,当在 webonyx/graphql-php 或任何包装器中使用 GraphQL 时。它基于提供库并允许您以简单方式处理它们的延迟解析器。
文档
该 trait 将解析器分为两个部分,fetch 和 pluck。
Fetch
这部分接收一个数组中的所有根对象,因此您可以一次性处理所有对象,并以最佳方式返回所有数据以在 pluck 中处理。
Pluck
该方法接收处理过的所有数据和请求信息的根,因此它应在处理过的数据中搜索并返回特定数据。
您必须使用 DeferredResolverInterface
实现 resolver 并在 resolver 类型中使用该 trait,如下所示
'resolve' => $this->deferredResolve(new MyResolver());
您可以在 https://medium.com/@JoseCardona/solving-graphql-n-1-in-php-92ed9161dd7b 上查看有关该包的文章
测试
joskfg/graphql-bulk-resolver
拥有一个 PHPUnit 测试套件和一个使用 PHP CS Fixer 的编码风格合规性测试套件。
要从项目文件夹运行测试,请运行以下命令。
$ docker-compose run test
要使用 PsySH 交互式运行
$ docker-compose run psysh
许可协议
MIT 许可协议。有关更多信息,请参阅 LICENSE。