From 7fb7c40432b4a763d222d5c7aa58465c0995c736 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Thu, 12 Dec 2024 16:15:37 +0100 Subject: [PATCH] #12 Delete the PurgeDoctrineCacheTask task --- config/services/task.yaml | 8 -- docs/index.md | 1 - .../EntityManager/PurgeDoctrineCacheTask.php | 108 ------------------ 3 files changed, 117 deletions(-) delete mode 100644 src/Task/EntityManager/PurgeDoctrineCacheTask.php diff --git a/config/services/task.yaml b/config/services/task.yaml index 67d2595..0788a05 100644 --- a/config/services/task.yaml +++ b/config/services/task.yaml @@ -86,11 +86,3 @@ services: CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineWriterTask: alias: cleverage_doctrine_process.task.doctrine_writer public: true - - cleverage_doctrine_process.task.purge_doctrine_cache: - class: CleverAge\DoctrineProcessBundle\Task\EntityManager\PurgeDoctrineCacheTask - arguments: - - '@doctrine' - CleverAge\DoctrineProcessBundle\Task\EntityManager\PurgeDoctrineCacheTask: - alias: cleverage_doctrine_process.task.purge_doctrine_cache - public: true diff --git a/docs/index.md b/docs/index.md index 2f8f9a7..9e8d8c2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,4 +32,3 @@ CleverAge\DoctrineProcessBundle\CleverAgeDoctrineProcessBundle::class => ['all' - [DoctrineRefresherTask] - [DoctrineRemoverTask] - [DoctrineWriterTask](reference/tasks/doctrine_writer_task.md) - - [PurgeDoctrineCacheTask] diff --git a/src/Task/EntityManager/PurgeDoctrineCacheTask.php b/src/Task/EntityManager/PurgeDoctrineCacheTask.php deleted file mode 100644 index 1d0b8cf..0000000 --- a/src/Task/EntityManager/PurgeDoctrineCacheTask.php +++ /dev/null @@ -1,108 +0,0 @@ - 'getQueryCacheImpl', - 'result_cache' => 'getResultCacheImpl', - 'hydration_cache' => 'getHydrationCacheImpl', - 'metadata_cache' => 'getMetadataCacheImpl', - ]; - - public function __construct( - protected ManagerRegistry $doctrine, - ) { - } - - public function execute(ProcessState $state): void - { - $entityManager = $this->getOption($state, 'entity_manager'); - if ($entityManager) { - $this->purgeEntityManagerCache($entityManager, $state); - } else { - foreach ($this->doctrine->getManagers() as $entityManager) { - if ($entityManager instanceof EntityManagerInterface) { - $this->purgeEntityManagerCache($entityManager, $state); - } - } - } - } - - protected function purgeEntityManagerCache(EntityManagerInterface $entityManager, ProcessState $state): void - { - $options = $this->getOptions($state); - foreach (self::METHOD_MAP as $option => $method) { - if ($options[$option]) { - $this->purgeCache($entityManager->getConfiguration()->{$method}()); - } - } - } - - protected function purgeCache(?Cache $cache = null): void - { - if ($cache instanceof FlushableCache) { - $cache->flushAll(); - } - } - - protected function configureOptions(OptionsResolver $resolver): void - { - $resolver->setDefaults( - [ - 'query_cache' => true, - 'result_cache' => true, - 'hydration_cache' => true, - 'metadata_cache' => false, - 'entity_manager' => null, // Purge all entity managers by default - ] - ); - $resolver->setAllowedTypes('query_cache', ['bool']); - $resolver->setAllowedTypes('result_cache', ['bool']); - $resolver->setAllowedTypes('hydration_cache', ['bool']); - $resolver->setAllowedTypes('entity_manager', ['null', 'string', EntityManagerInterface::class]); - $resolver->setNormalizer( - 'entity_manager', - function (Options $options, $value): ?EntityManagerInterface { - if (null === $value) { - return null; - } - if (\is_string($value)) { - $value = $this->doctrine->getManager($value); - } - if (!$value instanceof EntityManagerInterface) { - throw new \UnexpectedValueException('Unable to resolve entity manager'); - } - - return $value; - } - ); - } -}