cms-multi/filament-clear-cache
Adds a “Clear Cache” button to your Filament admin toolbar so you can quickly run cache-clearing commands without leaving the panel. Supports Filament v2–v5 (via plugin versions) and configurable via a publishable config.
composer require cms-multi/filament-clear-cache
Panel configuration (e.g., app/Providers/Filament/AdminPanelProvider.php):
use CmsMulti\FilamentClearCache\FilamentClearCachePlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
FilamentClearCachePlugin::make(),
]);
}
php artisan vendor:publish --provider="CmsMulti\FilamentClearCache\FilamentClearCacheServiceProvider"
optimize:clear (default), clearing Laravel's cache (config, route, view, etc.).Default Usage:
Artisan::call('optimize:clear') on click.Conditional Activation:
local, staging):
FilamentClearCachePlugin::make()
->enabled(app()->environment(['local', 'staging']))
Custom Commands:
use CmsMulti\FilamentClearCache\Facades\FilamentClearCache;
public function boot()
{
FilamentClearCache::addCommand('page-cache:clear');
FilamentClearCache::addCommand('route:clear');
}
Dynamic UI Updates:
// Livewire v3+
$this->dispatch('clearCacheIncrement')->to(\CmsMulti\FilamentClearCache\Http\Livewire\ClearCache::class);
config/filament-clear-cache.php).FilamentClearCache facade to test cache-clearing logic:
$this->mock(FilamentClearCache::class)
->shouldReceive('clearCache')
->once();
Command Execution:
--queue flag for async execution (requires custom command setup).Livewire Caching:
$this->dispatch('refresh')->to(YourComponent::class);
Environment Mismatches:
optimize:clear. If you override commands, ensure they’re compatible with your Laravel version (e.g., route:clear may not exist in older versions).Button Visibility:
'visible' => true, // Force-show on all pages
php artisan list --show-hidden
APP_DEBUG=true) to inspect cache-clearing output.Custom Styling:
php artisan vendor:publish --tag="filament-clear-cache-views"
resources/views/vendor/filament-clear-cache/clear-cache.blade.php.Event Listeners:
cache-cleared) via Laravel’s event system:
event(new CacheClearedEvent());
Permissions:
FilamentClearCachePlugin::make()->visible(fn () => auth()->user()->can('clear-cache'));
if (app()->environment('production')) {
FilamentClearCache::addCommand('cache:clear --tags=production');
}
use CmsMulti\FilamentClearCache\Http\Livewire\ClearCache as BaseClearCache;
class CustomClearCache extends BaseClearCache
{
public function getCacheCountAttribute()
{
return Cache::stats()['total'] ?? 0;
}
}
Then bind it in your panel:
FilamentClearCachePlugin::make()->livewire(CustomClearCache::class);
How can I help you explore Laravel packages today?