<?php declare(strict_types=1);
namespace DvdwDirectory\Framework\Cache;
use Shopware\Storefront\Framework\Cache\Event\HttpCacheGenerateKeyEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class HttpCacheKeySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): iterable
{
return [HttpCacheGenerateKeyEvent::class => 'extendKey'];
}
public function extendKey(HttpCacheGenerateKeyEvent $event): void
{
$request = $event->getRequest();
$hash = $event->getHash();
if (!$request->cookies->has(CacheResponseSubscriber::COOKIE_NAME)) {
return;
}
$event->setHash(hash('sha256', $hash . '-' . $request->cookies->get(CacheResponseSubscriber::COOKIE_NAME)));
}
}