iazaran/smart-cache

Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.

Installs: 962

Dependents: 0

Suggesters: 0

Security: 0

Stars: 169

Watchers: 3

Forks: 6

Open Issues: 0

pkg:composer/iazaran/smart-cache

1.4.3 2025-09-28 19:50 UTC

README

Latest Version License PHP Version Tests

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.

๐Ÿš€ Quick Start

Installation

composer require iazaran/smart-cache

That's it! SmartCache works out-of-the-box with sensible defaults. No configuration required.

Basic Usage

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%!

Modern SWR Patterns (Laravel 12+)

// 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_*']);

๐Ÿ“ฆ What You Get

๐ŸŽฏ 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

โœจ Why Choose SmartCache?

๐Ÿš€ Core Strengths

  • ๐Ÿ“ฆ 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

๐ŸŒŸ Advanced Features

  • ๐ŸŒŠ 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

๐Ÿ“ˆ Real Performance Impact

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

๐Ÿš€ Advanced Features

Modern SWR Patterns (Laravel 12+)

// 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_*']);

Real-Time Monitoring

// Performance metrics and health analysis
$metrics = SmartCache::getPerformanceMetrics();
$analysis = SmartCache::analyzePerformance();

// HTTP command execution (no SSH needed)
$status = SmartCache::executeCommand('status', ['force' => true]);

๐Ÿ“ฆ Installation & Configuration

Basic Installation

composer require iazaran/smart-cache

That's it! SmartCache works out-of-the-box with sensible defaults. No configuration required for basic usage.

Optional Configuration

For advanced customization, publish the config:

php artisan vendor:publish --tag=smart-cache-config

Supported Laravel Versions: Laravel 8+ through Laravel 12+

๐Ÿ“š Documentation

For detailed documentation, examples, and advanced usage patterns, visit our comprehensive docs:

๐Ÿ“– View Full Documentation

Basic Usage Examples

// 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();

๐Ÿงฐ CLI Commands

# 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

๐Ÿ”ง Supported Cache Drivers

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 โš ๏ธ Basic โš ๏ธ Limited โœ… Yes โœ… Yes

๐Ÿš€ Quick Migration from Laravel Cache

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

๐Ÿงช Testing

SmartCache includes 252 comprehensive tests covering all functionality:

composer test
# or with coverage
composer test-coverage

๐Ÿค Contributing

We welcome contributions! See our Contributing Guide for details.

๐Ÿ“„ License

Laravel SmartCache is open-sourced software licensed under the MIT license.

๐Ÿ”— Links & Resources

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