src/Storefront/Framework/Routing/CachedDomainLoaderInvalidator.php line 36
<?php declare(strict_types=1);
namespace Shopware\Storefront\Framework\Routing;
use Shopware\Core\Framework\Adapter\Cache\CacheInvalidator;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenContainerEvent;
use Shopware\Core\Framework\Log\Package;
use Shopware\Core\System\SalesChannel\SalesChannelDefinition;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* @internal
*/
#[Package('storefront')]
class CachedDomainLoaderInvalidator implements EventSubscriberInterface
{
/**
* @internal
*/
public function __construct(private readonly CacheInvalidator $logger)
{
}
/**
* @return array<string, string|array{0: string, 1: int}|list<array{0: string, 1?: int}>>
*/
public static function getSubscribedEvents(): array
{
return [
EntityWrittenContainerEvent::class => [
['invalidate', 2000],
],
];
}
public function invalidate(EntityWrittenContainerEvent $event): void
{
if ($event->getEventByEntityName(SalesChannelDefinition::ENTITY_NAME)) {
$this->logger->invalidate([CachedDomainLoader::CACHE_KEY]);
}
}
}