laravel:performance-caching

SkillDev tools

Use framework caches and value/query caching to reduce work; add tags, locks, and explicit invalidation strategies for correctness

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the laravel:performance-caching skill

What this skill tells your AI

The instructions your AI receives, as published by jpcaparas/superpowers-laravel in skills/performance-caching/SKILL.md and read by ahel’s review.

Framework caches

php artisan route:cache
php artisan config:cache
php artisan view:cache

Clear with the corresponding clear commands when needed in deployments.

Values and queries

Cache::remember("post:{$id}", 600, fn () => Post::findOrFail($id));
  • Choose TTLs based on freshness requirements
  • Invalidate explicitly on writes when correctness matters

Patterns and Strategies

// Stable keys and scopes (e.g., tenant, locale)
Cache::remember("tenant:{$tenantId}:users:index:page:1", now()->addMinutes(5), function () {
    return User::with('team')->paginate(50);
});

// Tags (supported drivers) for grouped invalidation
Cache::tags(['users'])->remember('users.index.page.1', now()->addMinutes(5), fn () => ...);
Cache::tags(['users'])->flush();

// Locks to ensure exclusive expensive work
Cache::lock('reports:daily', 30)->block(5, function () {
    generateReports();
});
  • Use stable, namespaced keys; include any scoping dimension
  • Prefer remember() to prevent thundering herds
  • Use cache tags (if supported) to invalidate related entries together
  • Avoid caching highly dynamic or user-specific data without a plan
  • Document invalidation triggers next to cached code

Laravel 13+

// Extend TTL without re-fetching/re-storing the value
Cache::touch('user_session:123', 3600);
Cache::touch('analytics_data', now()->addHours(6));

// Filesystem-backed "storage" cache driver (e.g., S3 as a K/V store)
// config/cache.php
'storage' => [
    'driver' => 'storage',
    'disk' => env('CACHE_STORAGE_DISK', 's3'),
    'path' => env('CACHE_STORAGE_PATH', 'framework/cache/data'),
],
  • Security default: serializable_classes is false in config/cache.php; allow-list classes you cache as objects
  • Default cache/Redis prefixes changed underscores → hyphens in 13.x; pin CACHE_PREFIX/REDIS_PREFIX explicitly to avoid cold caches on upgrade

Signals

GitHub stars
153
Forks
2
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
laravel-performance-caching
Source
github.com/jpcaparas/superpowers-laravel