Skip to content

Commit cd2509e

Browse files
committed
B2B-2931: [Graphql Resolver Cache] improve reliability and developer awareness on cache keyspace
1 parent a3d15ef commit cd2509e

File tree

5 files changed

+16
-16
lines changed
  • app/code/Magento
    • CmsGraphQl/etc/graphql
    • CustomerGraphQl/etc/graphql
    • GraphQlResolverCache/Model/Resolver/Result/CacheKey/Calculator
  • dev/tests/integration/testsuite/Magento/GraphQlResolverCache/Model

5 files changed

+16
-16
lines changed

app/code/Magento/CmsGraphQl/etc/graphql/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</type>
3333
<type name="Magento\GraphQlResolverCache\Model\Resolver\Result\CacheKey\Calculator\Provider">
3434
<arguments>
35-
<argument name="customFactorProviders" xsi:type="array">
35+
<argument name="factorProviders" xsi:type="array">
3636
<item name="Magento\CmsGraphQl\Model\Resolver\Page" xsi:type="array">
3737
<item name="currency" xsi:type="string">Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Currency</item>
3838
<item name="store" xsi:type="string">Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Store</item>

app/code/Magento/CustomerGraphQl/etc/graphql/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204
</type>
205205
<type name="Magento\GraphQlResolverCache\Model\Resolver\Result\CacheKey\Calculator\Provider">
206206
<arguments>
207-
<argument name="customFactorProviders" xsi:type="array">
207+
<argument name="factorProviders" xsi:type="array">
208208
<item name="Magento\CustomerGraphQl\Model\Resolver\Customer" xsi:type="array">
209209
<item name="current_customer_id" xsi:type="string">Magento\CustomerGraphQl\Model\Resolver\CacheKey\FactorProvider\CurrentCustomerId</item>
210210
</item>

app/code/Magento/GraphQlResolverCache/Model/Resolver/Result/CacheKey/Calculator/Provider.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Provider implements ProviderInterface
1919
/**
2020
* @var array
2121
*/
22-
private array $customFactorProviders = [];
22+
private array $factorProviders = [];
2323

2424
/**
2525
* @var array
@@ -33,14 +33,14 @@ class Provider implements ProviderInterface
3333

3434
/**
3535
* @param ObjectManagerInterface $objectManager
36-
* @param array $customFactorProviders
36+
* @param array $factorProviders
3737
*/
3838
public function __construct(
3939
ObjectManagerInterface $objectManager,
40-
array $customFactorProviders = []
40+
array $factorProviders = []
4141
) {
4242
$this->objectManager = $objectManager;
43-
$this->customFactorProviders = $customFactorProviders;
43+
$this->factorProviders = $factorProviders;
4444
}
4545

4646
/**
@@ -56,7 +56,7 @@ private function initForResolver(ResolverInterface $resolver): void
5656
if (isset($this->keyCalculatorInstances[$resolverClass])) {
5757
return;
5858
}
59-
$customKeyFactorProviders = $this->getCustomFactorProvidersForResolver($resolver);
59+
$customKeyFactorProviders = $this->getFactorProvidersForResolver($resolver);
6060
if ($customKeyFactorProviders === null) {
6161
throw new \InvalidArgumentException(
6262
"Key factors are not determined for {$resolverClass} or its parents." .
@@ -123,14 +123,14 @@ private function getResolverClassChain(ResolverInterface $resolver): array
123123
* @param ResolverInterface $resolver
124124
* @return array|null
125125
*/
126-
private function getCustomFactorProvidersForResolver(ResolverInterface $resolver): ?array
126+
private function getFactorProvidersForResolver(ResolverInterface $resolver): ?array
127127
{
128128
$resultsToMerge = [];
129129
foreach ($this->getResolverClassChain($resolver) as $resolverClass) {
130-
if (isset($this->customFactorProviders[$resolverClass])
131-
&& is_array($this->customFactorProviders[$resolverClass])
130+
if (isset($this->factorProviders[$resolverClass])
131+
&& is_array($this->factorProviders[$resolverClass])
132132
) {
133-
$resultsToMerge []= $this->customFactorProviders[$resolverClass];
133+
$resultsToMerge []= $this->factorProviders[$resolverClass];
134134
}
135135
}
136136
// avoid using array_merge in a loop

dev/tests/integration/testsuite/Magento/GraphQlResolverCache/Model/Plugin/Resolver/CacheTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ private function preconfigureMocks()
170170
[
171171
\Magento\GraphQlResolverCache\Model\Resolver\Result\CacheKey\Calculator\Provider::class => [
172172
'arguments' => [
173-
'customFactorProviders' => [
173+
'factorProviders' => [
174174
\Magento\StoreGraphQl\Model\Resolver\StoreConfigResolver::class => [
175175
'test_failing' => 'TestFailingKeyFactor'
176176
]

dev/tests/integration/testsuite/Magento/GraphQlResolverCache/Model/Resolver/Result/Cache/KeyCalculator/ProviderTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function testProviderEmptyConfig()
7575
$this->provider = $this->objectManager->create(
7676
Provider::class,
7777
[
78-
'customFactorProviders' => [
78+
'factorProviders' => [
7979
'Magento\StoreGraphQl\Model\Resolver\StoreConfigResolver' => [],
8080
]
8181
]
@@ -97,7 +97,7 @@ public function testProviderEmptyConfig()
9797
public function testProviderKeyFactorsConfigured()
9898
{
9999
$this->provider = $this->objectManager->create(Provider::class, [
100-
'customFactorProviders' => [
100+
'factorProviders' => [
101101
'Magento\StoreGraphQl\Model\Resolver\StoreConfigResolver' => [
102102
'store' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Store',
103103
'currency' => 'Magento\StoreGraphQl\Model\Resolver\CacheKey\FactorProvider\Currency'
@@ -155,7 +155,7 @@ public function testProviderSameKeyCalculatorsForDifferentResolvers()
155155
$this->provider = $this->objectManager->create(
156156
Provider::class,
157157
[
158-
'customFactorProviders' => [
158+
'factorProviders' => [
159159
'Magento\CustomerGraphQl\Model\Resolver\Customer' => [
160160
'customer_id' =>
161161
'Magento\CustomerGraphQl\Model\Resolver\CacheKey\FactorProvider\CurrentCustomerId',
@@ -192,7 +192,7 @@ public function testProviderSameKeyCalculatorsForDifferentResolvers()
192192
public function testProviderDifferentKeyCalculatorsForDifferentResolvers()
193193
{
194194
$this->provider = $this->objectManager->create(Provider::class, [
195-
'customFactorProviders' => [
195+
'factorProviders' => [
196196
'Magento\CustomerGraphQl\Model\Resolver\Customer' => [
197197
'customer_id' =>
198198
'Magento\CustomerGraphQl\Model\Resolver\Cache\KeyFactorProvider\CurrentCustomerId',

0 commit comments

Comments
 (0)