From 5b298b591e39ec1011c12e015f1b770460c95ad1 Mon Sep 17 00:00:00 2001 From: aidan-casey Date: Mon, 25 Nov 2024 09:35:47 +0000 Subject: [PATCH] chore(core): discovery cache improvements (#768) --- src/Commands/DiscoveryGenerateCommand.php | 15 +------------- src/DiscoveryCache.php | 24 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/Commands/DiscoveryGenerateCommand.php b/src/Commands/DiscoveryGenerateCommand.php index 10dda9b..e63aa57 100644 --- a/src/Commands/DiscoveryGenerateCommand.php +++ b/src/Commands/DiscoveryGenerateCommand.php @@ -18,8 +18,6 @@ { use HasConsole; - public const string CURRENT_DISCOVERY_STRATEGY = __DIR__ . '/../.cache/current_discovery_strategy'; - public function __construct( private Kernel $kernel, private DiscoveryCache $discoveryCache, @@ -45,7 +43,7 @@ public function __invoke(): void $this->generateDiscoveryCache($strategy); - $this->storeDiscoveryCacheStrategy($strategy); + $this->discoveryCache->storeStrategy($strategy); } public function clearDiscoveryCache(): void @@ -100,17 +98,6 @@ private function resolveDiscoveryCacheStrategy(): DiscoveryCacheStrategy return DiscoveryCacheStrategy::make(env('DISCOVERY_CACHE')); } - private function storeDiscoveryCacheStrategy(DiscoveryCacheStrategy $strategy): void - { - $dir = dirname(self::CURRENT_DISCOVERY_STRATEGY); - - if (! is_dir($dir)) { - mkdir($dir, recursive: true); - } - - file_put_contents(self::CURRENT_DISCOVERY_STRATEGY, $strategy->value); - } - public function resolveKernel(): Kernel { $container = new GenericContainer(); diff --git a/src/DiscoveryCache.php b/src/DiscoveryCache.php index 8c55fb6..7b2abc2 100644 --- a/src/DiscoveryCache.php +++ b/src/DiscoveryCache.php @@ -14,7 +14,11 @@ final class DiscoveryCache implements Cache { - use IsCache; + use IsCache { + clear as parentClear; + } + + public const string CURRENT_DISCOVERY_STRATEGY = __DIR__ . '/.cache/current_discovery_strategy'; private CacheItemPoolInterface $pool; @@ -68,8 +72,26 @@ public function isValid(): bool return $this->cacheConfig->discoveryCache->isValid(); } + public function clear(): void + { + $this->parentClear(); + + $this->storeStrategy(DiscoveryCacheStrategy::INVALID); + } + public function getStrategy(): DiscoveryCacheStrategy { return $this->cacheConfig->discoveryCache; } + + public function storeStrategy(DiscoveryCacheStrategy $strategy): void + { + $dir = dirname(self::CURRENT_DISCOVERY_STRATEGY); + + if (! is_dir($dir)) { + mkdir($dir, recursive: true); + } + + file_put_contents(self::CURRENT_DISCOVERY_STRATEGY, $strategy->value); + } }