Laravel SmartCache is a powerful caching optimization package that dramatically improves your Laravel application's performance through intelligent data compression (up to 70% size reduction), smart chunking, and automatic optimization - all while maintaining the familiar Laravel Cache API you already know and love.
composer require iazaran/smart-cache
That's it! SmartCache works out-of-the-box with sensible defaults. No configuration required.
Use exactly like Laravel's Cache
facade - your existing code works unchanged:
use SmartCache\Facades\SmartCache;
// Basic caching (just like Laravel Cache)
SmartCache::put('users', $users, 3600);
$users = SmartCache::get('users');
// Helper function (just like cache() helper)
smart_cache(['products' => $products], 3600);
$products = smart_cache('products');
// Remember pattern (just like Cache::remember)
$users = SmartCache::remember('users', 3600, function() {
return User::all();
});
✨ The Magic: Your data is automatically compressed and chunked when beneficial, reducing cache size by up to 70%!
// SWR: Serve stale data while refreshing in background
$apiData = SmartCache::swr('github_repos', function() {
return Http::get('https://api.github.com/user/repos')->json();
}, 300, 900); // 5min fresh, 15min stale
// Pattern-based cache clearing
SmartCache::flushPatterns(['user_*', 'api_v2_*']);
🎯 Perfect for Every Use Case:
- 🚀 Simple Projects: Drop-in replacement for Laravel's
Cache
facade with automatic optimizations - ⚡ Complex Applications: Advanced caching patterns and smart invalidation strategies
- 📊 High-Performance Systems: Real-time monitoring, SWR patterns, and analytics
- 🏢 Enterprise Solutions: Comprehensive management, HTTP APIs, and production monitoring
- 📦 Intelligent Compression - Up to 70% cache size reduction with automatic gzip compression
- 🧩 Smart Chunking - Breaks large arrays/objects into manageable pieces for better performance
- 🔄 Zero Breaking Changes - Drop-in replacement for Laravel's Cache facade
- ⚡ Automatic Optimization - No configuration needed, works out-of-the-box
- 🌊 Modern SWR Patterns - Stale-while-revalidate for real-time applications (Laravel 12+)
- 📊 Real-Time Monitoring - Performance metrics and health analysis
- 🌐 HTTP Management - Execute cache commands via web interface (no SSH needed)
- 🔗 Smart Invalidation - Dependency tracking, pattern-based clearing, model auto-invalidation
Production Results from E-commerce Platform:
- 72% cache size reduction (15MB → 4.2MB)
- 94.3% cache hit ratio
- 23ms average retrieval time
- 800MB daily Redis memory savings
- 40% faster cache retrieval vs standard Laravel Cache
// SWR: Serve stale data while refreshing in background
$data = SmartCache::swr('expensive_api', function() {
return api()->fetchExpensiveData();
}, 300, 900); // 5min fresh, 15min stale
// Pattern-based cache invalidation
SmartCache::flushPatterns(['user_*', 'api_v2_*']);
// Performance metrics and health analysis
$metrics = SmartCache::getPerformanceMetrics();
$analysis = SmartCache::analyzePerformance();
// HTTP command execution (no SSH needed)
$status = SmartCache::executeCommand('status', ['force' => true]);
composer require iazaran/smart-cache
That's it! SmartCache works out-of-the-box with sensible defaults. No configuration required for basic usage.
For advanced customization, publish the config:
php artisan vendor:publish --tag=smart-cache-config
Supported Laravel Versions: Laravel 8+ through Laravel 12+
For detailed documentation, examples, and advanced usage patterns, visit our comprehensive docs:
// Drop-in replacement for Laravel Cache
SmartCache::put('users', $users, 3600);
$users = SmartCache::get('users');
// Modern SWR patterns (Laravel 12+)
$data = SmartCache::swr('api_data', $callback, 300, 900);
// Pattern-based invalidation
SmartCache::flushPatterns(['user_*', 'api_v2_*']);
// Performance monitoring
$metrics = SmartCache::getPerformanceMetrics();
# Quick status overview
php artisan smart-cache:status
# Clear all SmartCache managed keys
php artisan smart-cache:clear
# Clear specific key
php artisan smart-cache:clear expensive_api_call
Driver | Compression | Chunking | SWR Methods | Monitoring |
---|---|---|---|---|
Redis | ✅ Full | ✅ Full | ✅ Yes | ✅ Yes |
File | ✅ Full | ✅ Full | ✅ Yes | ✅ Yes |
Database | ✅ Full | ✅ Full | ✅ Yes | ✅ Yes |
Array | ✅ Full | ✅ Full | ✅ Yes | ✅ Yes |
Memcached | ✅ Yes | ✅ Yes |
SmartCache is 100% compatible with existing Laravel Cache code:
// Your existing Laravel Cache code works unchanged
Cache::put('key', $value, 3600);
$value = Cache::get('key');
// Just change the facade import
// use Illuminate\Support\Facades\Cache; ❌ Old
use SmartCache\Facades\SmartCache; // ✅ New
// Now you get automatic optimization + new features
SmartCache::put('key', $value, 3600); // Automatically optimized
$value = SmartCache::get('key'); // Automatically restored
// Plus new SWR methods are available immediately
$value = SmartCache::swr('key', $callback); // 🆕 Modern pattern
SmartCache includes 252 comprehensive tests covering all functionality:
composer test
# or with coverage
composer test-coverage
We welcome contributions! See our Contributing Guide for details.
Laravel SmartCache is open-sourced software licensed under the MIT license.
- 🌐 Full Documentation: https://iazaran.github.io/smart-cache/
- 📦 Packagist Package: https://packagist.org/packages/iazaran/smart-cache
- 🐛 Issue Tracker: https://github.com/iazaran/smart-cache/issues
Built with ❤️ for the Laravel community
From simple applications to enterprise-scale systems
🏷️ Keywords: Laravel caching, PHP performance, Redis optimization, SWR patterns, cache monitoring, Laravel 12, enterprise caching, performance analytics, cache invalidation, smart optimization