joskfg/graphql-bulk-resolver

GraphQL 批量解析器

0.4 2018-09-26 11:49 UTC

This package is auto-updated.

Last update: 2024-09-17 10:44:10 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

用于避免在使用 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