vasily-kartashov/graphql-batch-processor
Composer 安装命令:
composer require vasily-kartashov/graphql-batch-processor
包简介
GraphQL batch processor
README 文档
README
Simple Example:
// Name of the cache is `addressesByUserId` return Batch::as('addressesByUserId') // Collect user IDs ->collectOne($user->id()) // When all user IDs are collected, fetch addresses for all collected user IDs // The callback is only executed once for each set of user IDs // And cached internally under the name `addressesByUserId` ->fetchOneToMany(function (array $userIds) { return $this->addressRepository->findAddressesByUserIds($userIds); });
More complex example
return Batch::as('accountsByOrgranizationId') ->collectMultiple($organization->accountIds()) ->fetchOneToOne(function (array $accountIds) { return $this->accountRepository->findAccountsByAccountIds($accountIds); });
Proper example
Get all addresses for each user; post filter out hidden addresses; format each address as a string; if there's no address, default to company's address
return Batch::as('addressesByUserId') ->collectOne($user->id()) ->filter(function (Address $address) { return !$address->hidden(); }) ->format(function (Address $address) { return (string) $address; }) ->defaultTo([$company->defaultAddress()]) ->fetchOneToMany(function (array $userIds) { return $this->addressRepository->findAddressesByUserIds($userIds); });
Tracing
Batches accept PSR-3 Loggers
return Batch::as('usersByUserIds') ->setLogger($logger) ->collectOne(...) ...
统计信息
- 总下载量: 12.93k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2018-01-31