<?php
namespace Abcpremium\DataObjectQualityBundle\Event\Subscriber;
use Abcpremium\DataObjectQualityBundle\Cache\BundleCache;
use Pimcore\Event\DataObjectClassDefinitionEvents;
use Pimcore\Event\Model\DataObject\ClassDefinitionEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class InvalidateCacheOnClassSave implements EventSubscriberInterface
{
private BundleCache $cache;
public function __construct(
BundleCache $cache
) {
$this->cache = $cache;
}
/**
* {@inheritDoc}
*/
public static function getSubscribedEvents(): array
{
return [
DataObjectClassDefinitionEvents::POST_UPDATE => 'invalidateClassCacheTags',
];
}
public function invalidateClassCacheTags(ClassDefinitionEvent $event): void
{
$classId = $event->getClassDefinition()->getId();
$this->cache->deleteCachesByClassId($classId);
return;
}
}