diff --git a/config/tailwind-merge.php b/config/tailwind-merge.php index 5728564..8357162 100644 --- a/config/tailwind-merge.php +++ b/config/tailwind-merge.php @@ -3,6 +3,17 @@ declare(strict_types=1); return [ + /* + |-------------------------------------------------------------------------- + | Cache Store + |-------------------------------------------------------------------------- + | + | Tailwind Merge uses Laravel's cache system to store the merged classes. + | Here you can customize the cache store that Tailwind Merge uses. + */ + + 'cache_store' => env('TAILWIND_MERGE_CACHE_STORE'), + /* |-------------------------------------------------------------------------- | Prefix diff --git a/src/TailwindMergeServiceProvider.php b/src/TailwindMergeServiceProvider.php index 7fb4a13..4c9afdc 100644 --- a/src/TailwindMergeServiceProvider.php +++ b/src/TailwindMergeServiceProvider.php @@ -4,9 +4,11 @@ namespace TailwindMerge\Laravel; +use Illuminate\Support\Facades\Cache; use Illuminate\Support\ServiceProvider as BaseServiceProvider; use Illuminate\View\Compilers\BladeCompiler; use Illuminate\View\ComponentAttributeBag; +use Psr\SimpleCache\CacheInterface; use TailwindMerge\Contracts\TailwindMergeContract; use TailwindMerge\TailwindMerge; @@ -14,9 +16,9 @@ class TailwindMergeServiceProvider extends BaseServiceProvider { public function register(): void { - $this->app->singleton(TailwindMergeContract::class, static fn (): TailwindMerge => TailwindMerge::factory() + $this->app->singleton(TailwindMergeContract::class, fn (): TailwindMerge => TailwindMerge::factory() ->withConfiguration(config('tailwind-merge', [])) - ->withCache(app('cache')->store()) // @phpstan-ignore-line + ->withCache($this->getCacheStore()) ->make()); $this->app->alias(TailwindMergeContract::class, 'tailwind-merge'); @@ -90,4 +92,12 @@ public function provides(): array 'tailwind-merge', ]; } + + protected function getCacheStore(): CacheInterface + { + /** @var string|null $storage */ + $storage = config('tailwind-merge.cache_store'); + + return Cache::store($storage); + } } diff --git a/tests/Arch.php b/tests/Arch.php index 0296238..81e121d 100644 --- a/tests/Arch.php +++ b/tests/Arch.php @@ -12,9 +12,11 @@ ->expect('TailwindMerge\Laravel\TailwindMergeServiceProvider') ->toOnlyUse([ 'Illuminate\Contracts\Support\DeferrableProvider', + 'Illuminate\Support\Facades\Cache', 'Illuminate\Support\ServiceProvider', 'Illuminate\View\Compilers\BladeCompiler', 'Illuminate\View\ComponentAttributeBag', + 'Psr\SimpleCache\CacheInterface', 'TailwindMerge', // helpers...