From 16636e2187c23b1d4314d7194fbd9e4dce4b0324 Mon Sep 17 00:00:00 2001 From: Kamil Madejski Date: Thu, 5 Jul 2018 11:53:26 +0200 Subject: [PATCH] EZP-29387: Variation cache should be SiteAccess and domain aware (#2383) * EZP-29387: Variation cache should be SiteAccess and domain aware * fixup! EZP-29387: Variation cache should be SiteAccess and domain aware * fixup! fixup! EZP-29387: Variation cache should be SiteAccess and domain aware --- .../Imagine/Cache/AliasGeneratorDecorator.php | 17 ++++++++++++----- .../Resources/config/image.yml | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/eZ/Bundle/EzPublishCoreBundle/Imagine/Cache/AliasGeneratorDecorator.php b/eZ/Bundle/EzPublishCoreBundle/Imagine/Cache/AliasGeneratorDecorator.php index f3e6533d724..dc962cf564d 100644 --- a/eZ/Bundle/EzPublishCoreBundle/Imagine/Cache/AliasGeneratorDecorator.php +++ b/eZ/Bundle/EzPublishCoreBundle/Imagine/Cache/AliasGeneratorDecorator.php @@ -9,6 +9,7 @@ use eZ\Publish\API\Repository\Values\Content\Field; use eZ\Publish\API\Repository\Values\Content\VersionInfo; use eZ\Publish\Core\MVC\Symfony\SiteAccess; +use eZ\Publish\Core\MVC\Symfony\SiteAccess\SiteAccessAware; use eZ\Publish\SPI\Variation\VariationHandler; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\Routing\RequestContext; @@ -16,7 +17,7 @@ /** * Persistence Cache layer for AliasGenerator. */ -class AliasGeneratorDecorator implements VariationHandler +class AliasGeneratorDecorator implements VariationHandler, SiteAccessAware { /** * @var \eZ\Publish\SPI\Variation\VariationHandler @@ -41,14 +42,12 @@ class AliasGeneratorDecorator implements VariationHandler /** * @param \eZ\Publish\SPI\Variation\VariationHandler $aliasGenerator * @param \Psr\Cache\CacheItemPoolInterface $cache - * @param \eZ\Publish\Core\MVC\Symfony\SiteAccess $siteAccess * @param \Symfony\Component\Routing\RequestContext $requestContext */ - public function __construct(VariationHandler $aliasGenerator, CacheItemPoolInterface $cache, SiteAccess $siteAccess, RequestContext $requestContext) + public function __construct(VariationHandler $aliasGenerator, CacheItemPoolInterface $cache, RequestContext $requestContext) { $this->aliasGenerator = $aliasGenerator; $this->cache = $cache; - $this->siteAccess = $siteAccess; $this->requestContext = $requestContext; } @@ -74,6 +73,14 @@ public function getVariation(Field $field, VersionInfo $versionInfo, $variationN return $image; } + /** + * @param \eZ\Publish\Core\MVC\Symfony\SiteAccess $siteAccess + */ + public function setSiteAccess(SiteAccess $siteAccess = null) + { + $this->siteAccess = $siteAccess; + } + /** * @param \eZ\Publish\API\Repository\Values\Content\Field $field * @param \eZ\Publish\API\Repository\Values\Content\VersionInfo $versionInfo @@ -85,7 +92,7 @@ private function getCacheKey(Field $field, VersionInfo $versionInfo, $variationN { return sprintf( 'ez-image-variation-%s-%s-%s-%d-%d-%d-%s-%s', - $this->siteAccess->name, + $this->siteAccess ? $this->siteAccess->name : 'default', $this->requestContext->getScheme(), $this->requestContext->getHost(), $this->requestContext->getScheme() === 'https' ? $this->requestContext->getHttpsPort() : $this->requestContext->getHttpPort(), diff --git a/eZ/Bundle/EzPublishCoreBundle/Resources/config/image.yml b/eZ/Bundle/EzPublishCoreBundle/Resources/config/image.yml index 168d223c480..b0a9a3e5982 100644 --- a/eZ/Bundle/EzPublishCoreBundle/Resources/config/image.yml +++ b/eZ/Bundle/EzPublishCoreBundle/Resources/config/image.yml @@ -88,8 +88,9 @@ services: arguments: - '@ezpublish.image_alias.imagine.variation.imagine_alias_generator' - '@ezpublish.cache_pool' - - '@ezpublish.siteaccess' - '@router.request_context' + calls: + - [setSiteAccess, ['@ezpublish.siteaccess']] ezpublish.image_alias.imagine.variation.imagine_alias_generator: class: '%ezpublish.image_alias.imagine.variation.imagine_alias_generator.class%'