Skip to content

didansan/smart-cache

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

92 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Laravel SmartCache - Intelligent Caching Optimization Package

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

About

Laravel SmartCache - Intelligent Caching Optimization Package

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PHP 100.0%