From db9e8bcb16bb96c253b2738fe1c4ec786fac243a Mon Sep 17 00:00:00 2001 From: Jacob Dreesen Date: Mon, 23 Jun 2025 12:51:40 +0200 Subject: [PATCH 1/5] Refactor service definitions This enables autowiring only for classes that are intended to be autowired. --- config/services.php | 52 ++++++++++--------- .../NeustaPimcoreHttpCacheExtension.php | 12 ++--- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/config/services.php b/config/services.php index ac6f240..2d04598 100644 --- a/config/services.php +++ b/config/services.php @@ -6,7 +6,6 @@ use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator; use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator\OnlyWhenActiveCacheInvalidator; use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator\RemoveDisabledTagsCacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\ElementCacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\StaticCacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\Cache\ResponseTagger; @@ -24,48 +23,51 @@ return static function (ContainerConfigurator $configurator) { $services = $configurator->services(); - $services->set(CacheActivator::class); + $services->set('neusta_pimcore_http_cache.cache_activator', CacheActivator::class) + ->alias(CacheActivator::class, 'neusta_pimcore_http_cache.cache_activator'); - $services->set(CacheInvalidator::class, CacheInvalidatorAdapter::class) + $services->set('neusta_pimcore_http_cache.cache_invalidator', CacheInvalidatorAdapter::class) ->arg('$invalidator', service(CacheManager::class)); - $services->set(RemoveDisabledTagsCacheInvalidator::class) - ->decorate(CacheInvalidator::class, null, -99) - ->args([service('.inner'), service(CacheTagChecker::class)]); + $services->set(null, RemoveDisabledTagsCacheInvalidator::class) + ->decorate('neusta_pimcore_http_cache.cache_invalidator', null, -99) + ->args([service('.inner'), service('neusta_pimcore_http_cache.cache_tag_checker')]); - $services->set(OnlyWhenActiveCacheInvalidator::class) - ->decorate(CacheInvalidator::class, null, -100) - ->args([service('.inner'), service(CacheActivator::class)]); + $services->set(null, OnlyWhenActiveCacheInvalidator::class) + ->decorate('neusta_pimcore_http_cache.cache_invalidator', null, -100) + ->args([service('.inner'), service('neusta_pimcore_http_cache.cache_activator')]); - $services->set(ResponseTagger::class, ResponseTaggerAdapter::class) + $services->alias(CacheInvalidator::class, 'neusta_pimcore_http_cache.cache_invalidator'); + + $services->set('neusta_pimcore_http_cache.response_tagger', ResponseTaggerAdapter::class) ->arg('$responseTagger', service('fos_http_cache.http.symfony_response_tagger')); - $services->set(RemoveDisabledTagsResponseTagger::class) - ->decorate(ResponseTagger::class, null, -99) - ->args([service('.inner'), service(CacheTagChecker::class)]); + $services->set(null, RemoveDisabledTagsResponseTagger::class) + ->decorate('neusta_pimcore_http_cache.response_tagger', null, -99) + ->args([service('.inner'), service('neusta_pimcore_http_cache.cache_tag_checker')]); + + $services->set(null, OnlyWhenActiveResponseTagger::class) + ->decorate('neusta_pimcore_http_cache.response_tagger', null, -100) + ->args([service('.inner'), service('neusta_pimcore_http_cache.cache_activator')]); - $services->set(OnlyWhenActiveResponseTagger::class) - ->decorate(ResponseTagger::class, null, -100) - ->args([service('.inner'), service(CacheActivator::class)]); + $services->alias(ResponseTagger::class, 'neusta_pimcore_http_cache.response_tagger'); - $services->set(StaticCacheTagChecker::class) + $services->set('neusta_pimcore_http_cache.cache_tag_checker', StaticCacheTagChecker::class) ->arg('$types', abstract_arg('Set in the extension')); - $services->set(ElementCacheTagChecker::class) - ->decorate(StaticCacheTagChecker::class) + $services->set('neusta_pimcore_http_cache.cache_tag_checker.element', ElementCacheTagChecker::class) + ->decorate('neusta_pimcore_http_cache.cache_tag_checker') ->arg('$inner', service('.inner')) ->arg('$repository', inline_service(ElementRepository::class)) ->arg('$assets', ['enabled' => false, 'types' => []]) ->arg('$documents', ['enabled' => false, 'types' => []]) ->arg('$objects', ['enabled' => false, 'types' => [], 'classes' => []]); - $services->alias(CacheTagChecker::class, StaticCacheTagChecker::class); - - $services->set(TagElementListener::class) - ->arg('$responseTagger', service(ResponseTagger::class)) + $services->set('neusta_pimcore_http_cache.element.tag_listener', TagElementListener::class) + ->arg('$responseTagger', service('neusta_pimcore_http_cache.response_tagger')) ->arg('$dispatcher', service('event_dispatcher')); - $services->set(InvalidateElementListener::class) - ->arg('$cacheInvalidator', service(CacheInvalidator::class)) + $services->set('neusta_pimcore_http_cache.element.invalidate_listener', InvalidateElementListener::class) + ->arg('$cacheInvalidator', service('neusta_pimcore_http_cache.cache_invalidator')) ->arg('$dispatcher', service('event_dispatcher')); }; diff --git a/src/DependencyInjection/NeustaPimcoreHttpCacheExtension.php b/src/DependencyInjection/NeustaPimcoreHttpCacheExtension.php index ac1d3ec..860edf0 100644 --- a/src/DependencyInjection/NeustaPimcoreHttpCacheExtension.php +++ b/src/DependencyInjection/NeustaPimcoreHttpCacheExtension.php @@ -2,10 +2,6 @@ namespace Neusta\Pimcore\HttpCacheBundle\DependencyInjection; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\ElementCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\StaticCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\Element\InvalidateElementListener; -use Neusta\Pimcore\HttpCacheBundle\Element\TagElementListener; use Pimcore\Event\AssetEvents; use Pimcore\Event\DataObjectEvents; use Pimcore\Event\DocumentEvents; @@ -25,7 +21,7 @@ public function loadInternal(array $mergedConfig, ContainerBuilder $container): $loader->load('services.php'); - $container->getDefinition(StaticCacheTagChecker::class) + $container->getDefinition('neusta_pimcore_http_cache.cache_tag_checker') ->setArgument('$types', $mergedConfig['cache_types']); $this->registerElements($container, $mergedConfig['elements']); @@ -36,9 +32,9 @@ public function loadInternal(array $mergedConfig, ContainerBuilder $container): */ private function registerElements(ContainerBuilder $container, array $config): void { - $tagChecker = $container->getDefinition(ElementCacheTagChecker::class); - $tagListener = $container->getDefinition(TagElementListener::class); - $invalidateListener = $container->getDefinition(InvalidateElementListener::class); + $tagChecker = $container->getDefinition('neusta_pimcore_http_cache.cache_tag_checker.element'); + $tagListener = $container->getDefinition('neusta_pimcore_http_cache.element.tag_listener'); + $invalidateListener = $container->getDefinition('neusta_pimcore_http_cache.element.invalidate_listener'); if ($config['assets']['enabled']) { $tagChecker->setArgument('$assets', $config['assets']); From 7b7f7a1eb4bbd8defbf7552121c0a0c95bdbbd2d Mon Sep 17 00:00:00 2001 From: Jacob Dreesen Date: Wed, 2 Jul 2025 15:54:40 +0200 Subject: [PATCH 2/5] Fix test service definition --- tests/Integration/Helpers/ArrangeCacheTest.php | 2 +- tests/app/config/services.php | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/Integration/Helpers/ArrangeCacheTest.php b/tests/Integration/Helpers/ArrangeCacheTest.php index 414f712..bedd907 100644 --- a/tests/Integration/Helpers/ArrangeCacheTest.php +++ b/tests/Integration/Helpers/ArrangeCacheTest.php @@ -17,7 +17,7 @@ trait ArrangeCacheTest */ public static function arrange(\Closure $arrange): mixed { - $cacheActivator = self::getContainer()->get(CacheActivator::class); + $cacheActivator = self::getContainer()->get('test.cache_activator'); \assert($cacheActivator instanceof CacheActivator); $wasActive = $cacheActivator->isCachingActive(); diff --git a/tests/app/config/services.php b/tests/app/config/services.php index 1cccc0f..d9e71d1 100644 --- a/tests/app/config/services.php +++ b/tests/app/config/services.php @@ -2,7 +2,6 @@ namespace Symfony\Component\DependencyInjection\Loader\Configurator; -use Neusta\Pimcore\HttpCacheBundle\CacheActivator; use Neusta\Pimcore\HttpCacheBundle\Tests\Integration\Helpers\ClearRuntimeCacheListener; use Pimcore\Event\AssetEvents; use Pimcore\Event\DataObjectEvents; @@ -25,6 +24,6 @@ ->tag('kernel.event_listener', ['event' => DocumentEvents::POST_UPDATE]) ->tag('kernel.event_listener', ['event' => DocumentEvents::POST_DELETE]); - $services->set(CacheActivator::class) + $services->alias('test.cache_activator', 'neusta_pimcore_http_cache.cache_activator') ->public(); }; From 74e6dddaf51b0fc4898370902d4deccafc5c7eda Mon Sep 17 00:00:00 2001 From: Jacob Dreesen Date: Wed, 2 Jul 2025 15:04:14 +0200 Subject: [PATCH 3/5] Refactor namespaces to improve clarity and align with package structure --- config/services.php | 20 +++++++++---------- .../FOSHttpCache/CacheInvalidatorAdapter.php | 4 ++-- .../FOSHttpCache/ResponseTaggerAdapter.php | 4 ++-- src/{Cache => }/CacheInvalidator.php | 2 +- .../OnlyWhenActiveCacheInvalidator.php | 6 +++--- .../RemoveDisabledTagsCacheInvalidator.php | 8 ++++---- src/{Cache => }/CacheTag.php | 4 ++-- src/{Cache => }/CacheTagChecker.php | 2 +- .../ElementCacheTagChecker.php | 8 ++++---- .../CacheTagChecker/StaticCacheTagChecker.php | 6 +++--- src/{Cache => }/CacheTags.php | 2 +- src/{Cache => }/CacheType.php | 2 +- src/{Cache => }/CacheType/CustomCacheType.php | 4 ++-- .../CacheType/ElementCacheType.php | 4 ++-- src/{Cache => }/CacheType/EmptyCacheType.php | 4 ++-- src/{Cache => }/CacheTypeFactory.php | 8 ++++---- .../{ => Event}/ElementInvalidationEvent.php | 7 ++++--- .../{ => Event}/ElementTaggingEvent.php | 7 ++++--- .../InvalidateElementListener.php | 5 +++-- .../TagElementListener.php | 5 +++-- src/Exception/InvalidArgumentException.php | 2 +- src/Exception/PimcoreHttpCacheException.php | 2 +- src/{Cache => }/ResponseTagger.php | 2 +- .../OnlyWhenActiveResponseTagger.php | 6 +++--- .../RemoveDisabledTagsResponseTagger.php | 8 ++++---- .../Invalidation/CancelInvalidationTest.php | 2 +- .../InvalidateAdditionalTagTest.php | 6 +++--- .../Tagging/TagAdditionalTagTest.php | 8 ++++---- .../CacheInvalidatorAdapterTest.php | 2 +- .../OnlyWhenActiveCacheInvalidatorTest.php | 6 +++--- ...RemoveDisabledTagsCacheInvalidatorTest.php | 10 +++++----- .../ElementCacheTagCheckerTest.php | 8 ++++---- .../StaticCacheTagCheckerTest.php | 6 +++--- .../OnlyWhenActiveResponseTaggerTest.php | 6 +++--- .../RemoveDisabledTagsResponseTaggerTest.php | 10 +++++----- .../Element/InvalidateElementListenerTest.php | 10 +++++----- tests/Unit/Element/TagElementListenerTest.php | 10 +++++----- 37 files changed, 110 insertions(+), 106 deletions(-) rename src/{Cache => }/CacheInvalidator.php (71%) rename src/{Cache => }/CacheInvalidator/OnlyWhenActiveCacheInvalidator.php (73%) rename src/{Cache => }/CacheInvalidator/RemoveDisabledTagsCacheInvalidator.php (63%) rename src/{Cache => }/CacheTag.php (90%) rename src/{Cache => }/CacheTagChecker.php (70%) rename src/{Cache => }/CacheTagChecker/ElementCacheTagChecker.php (90%) rename src/{Cache => }/CacheTagChecker/StaticCacheTagChecker.php (71%) rename src/{Cache => }/CacheTags.php (97%) rename src/{Cache => }/CacheType.php (79%) rename src/{Cache => }/CacheType/CustomCacheType.php (84%) rename src/{Cache => }/CacheType/ElementCacheType.php (87%) rename src/{Cache => }/CacheType/EmptyCacheType.php (73%) rename src/{Cache => }/CacheTypeFactory.php (74%) rename src/Element/{ => Event}/ElementInvalidationEvent.php (82%) rename src/Element/{ => Event}/ElementTaggingEvent.php (82%) rename src/Element/{ => EventListener}/InvalidateElementListener.php (86%) rename src/Element/{ => EventListener}/TagElementListener.php (79%) rename src/{Cache => }/ResponseTagger.php (69%) rename src/{Cache => }/ResponseTagger/OnlyWhenActiveResponseTagger.php (73%) rename src/{Cache => }/ResponseTagger/RemoveDisabledTagsResponseTagger.php (62%) diff --git a/config/services.php b/config/services.php index 2d04598..4c17709 100644 --- a/config/services.php +++ b/config/services.php @@ -3,18 +3,18 @@ use FOS\HttpCacheBundle\CacheManager; use Neusta\Pimcore\HttpCacheBundle\Adapter\FOSHttpCache\CacheInvalidatorAdapter; use Neusta\Pimcore\HttpCacheBundle\Adapter\FOSHttpCache\ResponseTaggerAdapter; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator\OnlyWhenActiveCacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator\RemoveDisabledTagsCacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\ElementCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTagChecker\StaticCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\Cache\ResponseTagger; -use Neusta\Pimcore\HttpCacheBundle\Cache\ResponseTagger\OnlyWhenActiveResponseTagger; -use Neusta\Pimcore\HttpCacheBundle\Cache\ResponseTagger\RemoveDisabledTagsResponseTagger; use Neusta\Pimcore\HttpCacheBundle\CacheActivator; +use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator; +use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator\OnlyWhenActiveCacheInvalidator; +use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator\RemoveDisabledTagsCacheInvalidator; +use Neusta\Pimcore\HttpCacheBundle\CacheTagChecker\ElementCacheTagChecker; +use Neusta\Pimcore\HttpCacheBundle\CacheTagChecker\StaticCacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\Element\ElementRepository; -use Neusta\Pimcore\HttpCacheBundle\Element\InvalidateElementListener; -use Neusta\Pimcore\HttpCacheBundle\Element\TagElementListener; +use Neusta\Pimcore\HttpCacheBundle\Element\EventListener\InvalidateElementListener; +use Neusta\Pimcore\HttpCacheBundle\Element\EventListener\TagElementListener; +use Neusta\Pimcore\HttpCacheBundle\ResponseTagger; +use Neusta\Pimcore\HttpCacheBundle\ResponseTagger\OnlyWhenActiveResponseTagger; +use Neusta\Pimcore\HttpCacheBundle\ResponseTagger\RemoveDisabledTagsResponseTagger; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use function Symfony\Component\DependencyInjection\Loader\Configurator\abstract_arg; use function Symfony\Component\DependencyInjection\Loader\Configurator\inline_service; diff --git a/src/Adapter/FOSHttpCache/CacheInvalidatorAdapter.php b/src/Adapter/FOSHttpCache/CacheInvalidatorAdapter.php index afe08a0..89cce1c 100644 --- a/src/Adapter/FOSHttpCache/CacheInvalidatorAdapter.php +++ b/src/Adapter/FOSHttpCache/CacheInvalidatorAdapter.php @@ -3,8 +3,8 @@ namespace Neusta\Pimcore\HttpCacheBundle\Adapter\FOSHttpCache; use FOS\HttpCache\CacheInvalidator as FosCacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTags; +use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator; +use Neusta\Pimcore\HttpCacheBundle\CacheTags; final class CacheInvalidatorAdapter implements CacheInvalidator { diff --git a/src/Adapter/FOSHttpCache/ResponseTaggerAdapter.php b/src/Adapter/FOSHttpCache/ResponseTaggerAdapter.php index 454b603..62348cf 100644 --- a/src/Adapter/FOSHttpCache/ResponseTaggerAdapter.php +++ b/src/Adapter/FOSHttpCache/ResponseTaggerAdapter.php @@ -4,8 +4,8 @@ namespace Neusta\Pimcore\HttpCacheBundle\Adapter\FOSHttpCache; use FOS\HttpCache\ResponseTagger as FosResponseTagger; -use Neusta\Pimcore\HttpCacheBundle\Cache\CacheTags; -use Neusta\Pimcore\HttpCacheBundle\Cache\ResponseTagger; +use Neusta\Pimcore\HttpCacheBundle\CacheTags; +use Neusta\Pimcore\HttpCacheBundle\ResponseTagger; final class ResponseTaggerAdapter implements ResponseTagger { diff --git a/src/Cache/CacheInvalidator.php b/src/CacheInvalidator.php similarity index 71% rename from src/Cache/CacheInvalidator.php rename to src/CacheInvalidator.php index 8e468ef..fca5aee 100644 --- a/src/Cache/CacheInvalidator.php +++ b/src/CacheInvalidator.php @@ -1,6 +1,6 @@ Date: Wed, 2 Jul 2025 15:20:53 +0200 Subject: [PATCH 4/5] Refactor namespaces for CacheTag and related classes to improve package structure alignment --- config/services.php | 4 ++-- .../RemoveDisabledTagsCacheInvalidator.php | 2 +- src/CacheTag.php | 4 +++- src/{ => CacheTag}/CacheTagChecker.php | 4 +++- .../CacheTagChecker/ElementCacheTagChecker.php | 6 +++--- .../CacheTagChecker/StaticCacheTagChecker.php | 4 ++-- src/{ => CacheTag}/CacheType.php | 2 +- src/{ => CacheTag}/CacheType/CustomCacheType.php | 4 ++-- src/{ => CacheTag}/CacheType/ElementCacheType.php | 4 ++-- src/{ => CacheTag}/CacheType/EmptyCacheType.php | 4 ++-- src/{ => CacheTag}/CacheTypeFactory.php | 8 ++++---- src/CacheTags.php | 2 ++ src/Exception/InvalidArgumentException.php | 2 +- src/ResponseTagger/RemoveDisabledTagsResponseTagger.php | 2 +- .../Invalidation/InvalidateAdditionalTagTest.php | 2 +- tests/Integration/Tagging/TagAdditionalTagTest.php | 4 ++-- .../RemoveDisabledTagsCacheInvalidatorTest.php | 2 +- .../Cache/CacheTagChecker/ElementCacheTagCheckerTest.php | 6 +++--- .../Cache/CacheTagChecker/StaticCacheTagCheckerTest.php | 4 ++-- .../RemoveDisabledTagsResponseTaggerTest.php | 2 +- 20 files changed, 39 insertions(+), 33 deletions(-) rename src/{ => CacheTag}/CacheTagChecker.php (54%) rename src/{ => CacheTag}/CacheTagChecker/ElementCacheTagChecker.php (92%) rename src/{ => CacheTag}/CacheTagChecker/StaticCacheTagChecker.php (79%) rename src/{ => CacheTag}/CacheType.php (78%) rename src/{ => CacheTag}/CacheType/CustomCacheType.php (84%) rename src/{ => CacheTag}/CacheType/ElementCacheType.php (87%) rename src/{ => CacheTag}/CacheType/EmptyCacheType.php (72%) rename src/{ => CacheTag}/CacheTypeFactory.php (73%) diff --git a/config/services.php b/config/services.php index 4c17709..e9b96ac 100644 --- a/config/services.php +++ b/config/services.php @@ -7,8 +7,8 @@ use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator; use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator\OnlyWhenActiveCacheInvalidator; use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator\RemoveDisabledTagsCacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\CacheTagChecker\ElementCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\CacheTagChecker\StaticCacheTagChecker; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker\ElementCacheTagChecker; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker\StaticCacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\Element\ElementRepository; use Neusta\Pimcore\HttpCacheBundle\Element\EventListener\InvalidateElementListener; use Neusta\Pimcore\HttpCacheBundle\Element\EventListener\TagElementListener; diff --git a/src/CacheInvalidator/RemoveDisabledTagsCacheInvalidator.php b/src/CacheInvalidator/RemoveDisabledTagsCacheInvalidator.php index c06742d..d683ad6 100644 --- a/src/CacheInvalidator/RemoveDisabledTagsCacheInvalidator.php +++ b/src/CacheInvalidator/RemoveDisabledTagsCacheInvalidator.php @@ -3,7 +3,7 @@ namespace Neusta\Pimcore\HttpCacheBundle\CacheInvalidator; use Neusta\Pimcore\HttpCacheBundle\CacheInvalidator; -use Neusta\Pimcore\HttpCacheBundle\CacheTagChecker; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\CacheTags; final class RemoveDisabledTagsCacheInvalidator implements CacheInvalidator diff --git a/src/CacheTag.php b/src/CacheTag.php index 593e0fd..92730ce 100644 --- a/src/CacheTag.php +++ b/src/CacheTag.php @@ -2,7 +2,9 @@ namespace Neusta\Pimcore\HttpCacheBundle; -use Neusta\Pimcore\HttpCacheBundle\CacheType\ElementCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\ElementCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTypeFactory; use Neusta\Pimcore\HttpCacheBundle\Exception\InvalidArgumentException; use Pimcore\Model\Element\ElementInterface; diff --git a/src/CacheTagChecker.php b/src/CacheTag/CacheTagChecker.php similarity index 54% rename from src/CacheTagChecker.php rename to src/CacheTag/CacheTagChecker.php index 27983ec..cddcbc7 100644 --- a/src/CacheTagChecker.php +++ b/src/CacheTag/CacheTagChecker.php @@ -1,6 +1,8 @@ Date: Wed, 2 Jul 2025 15:28:27 +0200 Subject: [PATCH 5/5] Refactor CacheType to CacheTagType and update references across the codebase to align with naming conventions --- src/CacheTag.php | 16 +++++----- .../ElementCacheTagChecker.php | 4 +-- .../{CacheType.php => CacheTagType.php} | 2 +- .../CustomCacheTagType.php} | 6 ++-- .../ElementCacheTagType.php} | 6 ++-- .../EmptyCacheTagType.php} | 6 ++-- src/CacheTag/CacheTagTypeFactory.php | 31 +++++++++++++++++++ src/CacheTag/CacheTypeFactory.php | 31 ------------------- src/CacheTags.php | 6 ++-- src/Exception/InvalidArgumentException.php | 4 +-- .../InvalidateAdditionalTagTest.php | 4 +-- .../Tagging/TagAdditionalTagTest.php | 12 +++---- .../ElementCacheTagCheckerTest.php | 4 +-- .../StaticCacheTagCheckerTest.php | 8 ++--- 14 files changed, 70 insertions(+), 70 deletions(-) rename src/CacheTag/{CacheType.php => CacheTagType.php} (90%) rename src/CacheTag/{CacheType/CustomCacheType.php => CacheTagType/CustomCacheTagType.php} (76%) rename src/CacheTag/{CacheType/ElementCacheType.php => CacheTagType/ElementCacheTagType.php} (80%) rename src/CacheTag/{CacheType/EmptyCacheType.php => CacheTagType/EmptyCacheTagType.php} (59%) create mode 100644 src/CacheTag/CacheTagTypeFactory.php delete mode 100644 src/CacheTag/CacheTypeFactory.php diff --git a/src/CacheTag.php b/src/CacheTag.php index 92730ce..033b5f5 100644 --- a/src/CacheTag.php +++ b/src/CacheTag.php @@ -2,9 +2,9 @@ namespace Neusta\Pimcore\HttpCacheBundle; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\ElementCacheType; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTypeFactory; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\ElementCacheTagType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagTypeFactory; use Neusta\Pimcore\HttpCacheBundle\Exception\InvalidArgumentException; use Pimcore\Model\Element\ElementInterface; @@ -12,20 +12,20 @@ final class CacheTag { private function __construct( public readonly string $tag, - public readonly CacheType $type, + public readonly CacheTagType $type, ) { if ('' === trim($tag)) { throw InvalidArgumentException::becauseCacheTagIsEmpty(); } - if (!$type instanceof ElementCacheType && ElementCacheType::isReserved($type->toString())) { + if (!$type instanceof ElementCacheTagType && ElementCacheTagType::isReserved($type->toString())) { throw InvalidArgumentException::becauseCacheTypeIsReserved($type); } } - public static function fromString(string $tag, ?CacheType $type = null): self + public static function fromString(string $tag, ?CacheTagType $type = null): self { - return new self($tag, $type ?? CacheTypeFactory::createEmpty()); + return new self($tag, $type ?? CacheTagTypeFactory::createEmpty()); } public static function fromElement(ElementInterface $element): self @@ -34,7 +34,7 @@ public static function fromElement(ElementInterface $element): self throw InvalidArgumentException::becauseElementHasNoId(); } - return new self((string) $id, CacheTypeFactory::createFromElement($element)); + return new self((string) $id, CacheTagTypeFactory::createFromElement($element)); } public function toString(): string diff --git a/src/CacheTag/CacheTagChecker/ElementCacheTagChecker.php b/src/CacheTag/CacheTagChecker/ElementCacheTagChecker.php index 584ef52..f0e18a9 100644 --- a/src/CacheTag/CacheTagChecker/ElementCacheTagChecker.php +++ b/src/CacheTag/CacheTagChecker/ElementCacheTagChecker.php @@ -4,7 +4,7 @@ use Neusta\Pimcore\HttpCacheBundle\CacheTag; use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\ElementCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\ElementCacheTagType; use Neusta\Pimcore\HttpCacheBundle\Element\ElementRepository; use Neusta\Pimcore\HttpCacheBundle\Element\ElementType; use Pimcore\Model\DataObject\Concrete; @@ -27,7 +27,7 @@ public function __construct( public function isEnabled(CacheTag $tag): bool { - if (!$tag->type instanceof ElementCacheType) { + if (!$tag->type instanceof ElementCacheTagType) { return $this->inner->isEnabled($tag); } diff --git a/src/CacheTag/CacheType.php b/src/CacheTag/CacheTagType.php similarity index 90% rename from src/CacheTag/CacheType.php rename to src/CacheTag/CacheTagType.php index c713857..f2b7b04 100644 --- a/src/CacheTag/CacheType.php +++ b/src/CacheTag/CacheTagType.php @@ -2,7 +2,7 @@ namespace Neusta\Pimcore\HttpCacheBundle\CacheTag; -interface CacheType +interface CacheTagType { public function applyTo(string $tag): string; diff --git a/src/CacheTag/CacheType/CustomCacheType.php b/src/CacheTag/CacheTagType/CustomCacheTagType.php similarity index 76% rename from src/CacheTag/CacheType/CustomCacheType.php rename to src/CacheTag/CacheTagType/CustomCacheTagType.php index ba6c64d..81d45cc 100644 --- a/src/CacheTag/CacheType/CustomCacheType.php +++ b/src/CacheTag/CacheTagType/CustomCacheTagType.php @@ -1,11 +1,11 @@ tags = $tags; } - public static function fromString(string $tag, ?CacheType $type = null): self + public static function fromString(string $tag, ?CacheTagType $type = null): self { return new self(CacheTag::fromString($tag, $type)); } @@ -32,7 +32,7 @@ public static function fromString(string $tag, ?CacheType $type = null): self /** * @param list $tags */ - public static function fromStrings(array $tags, ?CacheType $type = null): self + public static function fromStrings(array $tags, ?CacheTagType $type = null): self { return new self(...array_map(fn ($tag) => CacheTag::fromString($tag, $type), $tags)); } diff --git a/src/Exception/InvalidArgumentException.php b/src/Exception/InvalidArgumentException.php index c353457..2b9920b 100644 --- a/src/Exception/InvalidArgumentException.php +++ b/src/Exception/InvalidArgumentException.php @@ -2,7 +2,7 @@ namespace Neusta\Pimcore\HttpCacheBundle\Exception; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType; final class InvalidArgumentException extends \InvalidArgumentException implements PimcoreHttpCacheException { @@ -11,7 +11,7 @@ public static function becauseCacheTagIsEmpty(): self return new self('Cache tag must not be empty.'); } - public static function becauseCacheTypeIsReserved(CacheType $type): self + public static function becauseCacheTypeIsReserved(CacheTagType $type): self { return new self(\sprintf( 'The cache type "%s" is reserved for Pimcore elements.', diff --git a/tests/Integration/Invalidation/InvalidateAdditionalTagTest.php b/tests/Integration/Invalidation/InvalidateAdditionalTagTest.php index 612dc00..0c65396 100644 --- a/tests/Integration/Invalidation/InvalidateAdditionalTagTest.php +++ b/tests/Integration/Invalidation/InvalidateAdditionalTagTest.php @@ -4,7 +4,7 @@ use FOS\HttpCacheBundle\CacheManager; use Neusta\Pimcore\HttpCacheBundle\CacheTag; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\CustomCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\CustomCacheTagType; use Neusta\Pimcore\HttpCacheBundle\Element\Event\ElementInvalidationEvent; use Neusta\Pimcore\HttpCacheBundle\Tests\Integration\Helpers\ArrangeCacheTest; use Neusta\Pimcore\HttpCacheBundle\Tests\Integration\Helpers\TestAssetFactory; @@ -35,7 +35,7 @@ protected function setUp(): void self::getContainer()->get('event_dispatcher')->addListener( ElementInvalidationEvent::class, fn (ElementInvalidationEvent $event) => $event->addTag( - CacheTag::fromString('bar', new CustomCacheType('foo')), + CacheTag::fromString('bar', new CustomCacheTagType('foo')), ), ); } diff --git a/tests/Integration/Tagging/TagAdditionalTagTest.php b/tests/Integration/Tagging/TagAdditionalTagTest.php index 253a76e..d8a0af5 100644 --- a/tests/Integration/Tagging/TagAdditionalTagTest.php +++ b/tests/Integration/Tagging/TagAdditionalTagTest.php @@ -3,8 +3,8 @@ namespace Neusta\Pimcore\HttpCacheBundle\Tests\Integration\Tagging; use Neusta\Pimcore\HttpCacheBundle\CacheTag; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\CustomCacheType; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\ElementCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\CustomCacheTagType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\ElementCacheTagType; use Neusta\Pimcore\HttpCacheBundle\Element\ElementType; use Neusta\Pimcore\HttpCacheBundle\Element\Event\ElementTaggingEvent; use Neusta\Pimcore\HttpCacheBundle\Tests\Integration\Helpers\ArrangeCacheTest; @@ -50,7 +50,7 @@ public function response_is_tagged_with_additional_tag_when_asset_is_loaded(): v self::getContainer()->get('event_dispatcher')->addListener( ElementTaggingEvent::class, fn (ElementTaggingEvent $event) => $event->addTag( - CacheTag::fromString('17', new ElementCacheType(ElementType::Asset)), + CacheTag::fromString('17', new ElementCacheTagType(ElementType::Asset)), ), ); @@ -80,7 +80,7 @@ public function response_is_tagged_with_additional_tag_when_document_is_loaded() self::getContainer()->get('event_dispatcher')->addListener( ElementTaggingEvent::class, fn (ElementTaggingEvent $event) => $event->addTag( - CacheTag::fromString('23', new ElementCacheType(ElementType::Document)), + CacheTag::fromString('23', new ElementCacheTagType(ElementType::Document)), ), ); @@ -110,7 +110,7 @@ public function response_is_tagged_with_additional_tag_when_object_is_loaded(): self::getContainer()->get('event_dispatcher')->addListener( ElementTaggingEvent::class, fn (ElementTaggingEvent $event) => $event->addTag( - CacheTag::fromString('17', new ElementCacheType(ElementType::Object)), + CacheTag::fromString('17', new ElementCacheTagType(ElementType::Object)), ), ); @@ -142,7 +142,7 @@ public function response_is_tagged_with_custom_tag_when_element_is_loaded(): voi self::getContainer()->get('event_dispatcher')->addListener( ElementTaggingEvent::class, fn (ElementTaggingEvent $event) => $event->addTag( - CacheTag::fromString('bar', new CustomCacheType('foo')), + CacheTag::fromString('bar', new CustomCacheTagType('foo')), ), ); diff --git a/tests/Unit/Cache/CacheTagChecker/ElementCacheTagCheckerTest.php b/tests/Unit/Cache/CacheTagChecker/ElementCacheTagCheckerTest.php index 3748f75..e56c2d5 100644 --- a/tests/Unit/Cache/CacheTagChecker/ElementCacheTagCheckerTest.php +++ b/tests/Unit/Cache/CacheTagChecker/ElementCacheTagCheckerTest.php @@ -5,7 +5,7 @@ use Neusta\Pimcore\HttpCacheBundle\CacheTag; use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker; use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker\ElementCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\CustomCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\CustomCacheTagType; use Neusta\Pimcore\HttpCacheBundle\Element\ElementRepository; use PHPUnit\Framework\TestCase; use Pimcore\Model\Asset; @@ -35,7 +35,7 @@ protected function setUp(): void */ public function it_delegates_cache_tag_check_to_next_cache_tag_checker(): void { - $tag = CacheTag::fromString('foo', new CustomCacheType('custom')); + $tag = CacheTag::fromString('foo', new CustomCacheTagType('custom')); $elementCacheTagChecker = new ElementCacheTagChecker( $this->innerCacheTagChecker->reveal(), $this->elementRepository->reveal(), diff --git a/tests/Unit/Cache/CacheTagChecker/StaticCacheTagCheckerTest.php b/tests/Unit/Cache/CacheTagChecker/StaticCacheTagCheckerTest.php index 8191f89..76303a5 100644 --- a/tests/Unit/Cache/CacheTagChecker/StaticCacheTagCheckerTest.php +++ b/tests/Unit/Cache/CacheTagChecker/StaticCacheTagCheckerTest.php @@ -4,7 +4,7 @@ use Neusta\Pimcore\HttpCacheBundle\CacheTag; use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagChecker\StaticCacheTagChecker; -use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheType\CustomCacheType; +use Neusta\Pimcore\HttpCacheBundle\CacheTag\CacheTagType\CustomCacheTagType; use PHPUnit\Framework\TestCase; final class StaticCacheTagCheckerTest extends TestCase @@ -28,7 +28,7 @@ public function it_returns_true_when_cache_type_is_enabled(): void { self::assertTrue( (new StaticCacheTagChecker(['foo' => true]))->isEnabled( - CacheTag::fromString('foo', new CustomCacheType('foo')), + CacheTag::fromString('foo', new CustomCacheTagType('foo')), ), ); } @@ -40,7 +40,7 @@ public function it_returns_false_when_cache_type_is_disabled(): void { self::assertFalse( (new StaticCacheTagChecker(['foo' => false]))->isEnabled( - CacheTag::fromString('foo', new CustomCacheType('foo')), + CacheTag::fromString('foo', new CustomCacheTagType('foo')), ), ); } @@ -52,7 +52,7 @@ public function it_returns_false_when_cache_type_is_not_set(): void { self::assertFalse( (new StaticCacheTagChecker(['bar' => true]))->isEnabled( - CacheTag::fromString('foo', new CustomCacheType('foo')), + CacheTag::fromString('foo', new CustomCacheTagType('foo')), ), ); }