Identity Provider * * @var string[] */ private array $cacheableResolverClassNameIdentityMap; /** * @param ObjectManagerInterface $objectManager * @param array $cacheableResolverClassNameIdentityMap */ public function __construct( ObjectManagerInterface $objectManager, array $cacheableResolverClassNameIdentityMap ) { $this->objectManager = $objectManager; $this->cacheableResolverClassNameIdentityMap = $cacheableResolverClassNameIdentityMap; } /** * Get Identity provider based on $resolver instance. * * @param ResolverInterface $resolver * @return Cache\IdentityInterface|null */ public function getIdentityFromResolver(ResolverInterface $resolver): ?Cache\IdentityInterface { $matchingIdentityProviderClassName = null; foreach ($this->cacheableResolverClassNameIdentityMap as $resolverClassName => $identityProviderClassName) { if ($resolver instanceof $resolverClassName) { $matchingIdentityProviderClassName = $identityProviderClassName; break; } } if (!$matchingIdentityProviderClassName) { return null; } return $this->objectManager->get($matchingIdentityProviderClassName); } }