Skip to content

Commit 213668b

Browse files
committed
B2B-2451: Implement GraphQL Resolver Cache for CMS Page Type
1 parent 0622e71 commit 213668b

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

app/code/Magento/GraphQlCache/Model/Cache/Query/Resolver/Result/ResolverIdentityClassLocator.php

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,25 +45,19 @@ public function __construct(
4545
*/
4646
public function getIdentityFromResolver(ResolverInterface $resolver): ?IdentityInterface
4747
{
48-
$resolverClassHierarchy = array_merge(
49-
[get_class($resolver) => get_class($resolver)],
50-
class_parents($resolver),
51-
class_implements($resolver)
52-
);
48+
$matchingIdentityProviderClassName = null;
5349

54-
$cacheableResolverClassNames = array_keys($this->cacheableResolverClassNameIdentityMap);
55-
56-
$matchingCacheableResolverClassNames = array_intersect($cacheableResolverClassNames, $resolverClassHierarchy);
50+
foreach ($this->cacheableResolverClassNameIdentityMap as $resolverClassName => $identityProviderClassName) {
51+
if ($resolver instanceof $resolverClassName) {
52+
$matchingIdentityProviderClassName = $identityProviderClassName;
53+
break;
54+
}
55+
}
5756

58-
if (!count($matchingCacheableResolverClassNames)) {
57+
if (!$matchingIdentityProviderClassName) {
5958
return null;
6059
}
6160

62-
$matchingCacheableResolverClassName = reset($matchingCacheableResolverClassNames);
63-
$matchingCacheableResolverIdentityClassName = $this->cacheableResolverClassNameIdentityMap[
64-
$matchingCacheableResolverClassName
65-
];
66-
67-
return $this->identityPool->get($matchingCacheableResolverIdentityClassName);
61+
return $this->identityPool->get($matchingIdentityProviderClassName);
6862
}
6963
}

0 commit comments

Comments
 (0)