subhashladumor / laravel-optimizer
All-in-one Laravel optimization suite for speed, caching, database, frontend, and cleanup
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/subhashladumor/laravel-optimizer
Requires
- php: ^8.0|^8.1|^8.2|^8.3
- illuminate/cache: ^9.0|^10.0|^11.0|^12.0
- illuminate/console: ^9.0|^10.0|^11.0|^12.0
- illuminate/database: ^9.0|^10.0|^11.0|^12.0
- illuminate/http: ^9.0|^10.0|^11.0|^12.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0|^10.0
README
All-in-one Laravel optimization suite for speed, caching, database, frontend, and cleanup.
Laravel Optimizer Pro is a comprehensive performance optimization package that improves your Laravel application across multiple dimensions: backend caching, database queries, frontend assets, queue management, and automated cleanup.
โจ Features
๐ง Backend Optimization
- Optimize config, route, event, and view caching
- Auto-detect environment and suggest
.envimprovements - Memory usage analyzer and recommendations
๐๏ธ Database Optimization
- Detect and log slow queries (configurable threshold)
- Suggest missing indexes based on query patterns
- Cache repeated query results intelligently
- Optimize database tables (MySQL)
๐พ Cache Optimization
- Smart Redis/Memcached detection
- Auto-warm cache on deploy or config clear
- Cache TTL recommendations
- Cache hit rate analysis
๐จ Frontend Optimization
- Auto-detect unminified CSS/JS files
- Image compression recommendations
- Add lazy loading suggestions for
<img>tags - Gzip/Brotli compression detection
๐ฌ Queue Optimization
- Tune retry counts, batch size, and memory limits
- Detect failed jobs and suggest retry strategies
- Queue configuration analysis
๐งน Cleanup & Maintenance
- Clear old logs, sessions, caches, temp files
- Configurable retention periods
- Safe cleanup with confirmation prompts
๐ Performance Analyzer
- Comprehensive performance analysis
- TTFB, route speed, query count tracking
- Cache hit rate monitoring
- Performance score and grading system
๐ Requirements
- PHP 8.0 or higher
- Laravel 9.x, 10.x, or 11.x
๐ฆ Installation
Install the package via Composer:
composer require subhashladumor/laravel-optimizer
Publish Configuration
Publish the configuration file to customize settings:
php artisan vendor:publish --tag=optimizer-config
This will create config/optimizer.php in your application.
๐ฏ Usage
Available Commands
| Command | Description |
|---|---|
php artisan optimize:all |
Run all optimizations |
php artisan optimize:analyze |
Analyze performance |
php artisan optimize:db |
Optimize and analyze database |
php artisan optimize:cache |
Optimize cache & sessions |
php artisan optimize:frontend |
Optimize frontend assets |
php artisan optimize:cleanup |
Cleanup project logs & temp files |
Command Examples
1. Run All Optimizations
php artisan optimize:all
Output:
๐ Starting Laravel Optimizer Pro...
โ๏ธ Optimizing Backend...
โ Backend optimization completed successfully
๐๏ธ Optimizing Database...
โ Database optimization completed successfully
๐พ Optimizing Cache...
โ Cache optimization completed successfully
๐จ Optimizing Frontend...
โ Frontend optimization completed successfully
๐ฌ Optimizing Queue...
โ Queue optimization completed successfully
๐งน Cleaning up...
โ Cleanup optimization completed successfully
โ
All optimizations completed in 2.45s
2. Analyze Application Performance
php artisan optimize:analyze
Generate detailed report:
php artisan optimize:analyze --report
3. Database Optimization
php artisan optimize:db
Show database statistics:
php artisan optimize:db --stats
4. Cache Optimization
php artisan optimize:cache
Analyze cache usage:
php artisan optimize:cache --analyze
5. Frontend Optimization
php artisan optimize:frontend
Analyze frontend performance:
php artisan optimize:frontend --analyze
6. Cleanup
php artisan optimize:cleanup
Show cleanup statistics:
php artisan optimize:cleanup --stats
Force cleanup without confirmation:
php artisan optimize:cleanup --force
โ๏ธ Configuration
The config/optimizer.php file contains all configuration options:
return [ // Slow query threshold (in milliseconds) 'slow_query_threshold' => 200, // Preferred cache driver 'cache_driver' => 'redis', // Cache TTL settings 'cache_ttl' => [ 'config' => 3600, 'routes' => 3600, 'views' => 3600, 'queries' => 600, ], // Cleanup settings 'cleanup' => [ 'log_days' => 7, 'session_days' => 30, 'optimize_schedule' => 'weekly', ], // Frontend optimization 'frontend' => [ 'minify' => true, 'image_compression' => true, 'lazyload' => true, 'compression' => 'gzip', ], // Database optimization 'database' => [ 'analyze_indexes' => true, 'cache_queries' => true, 'log_slow_queries' => true, ], // Queue optimization 'queue' => [ 'retry_limit' => 3, 'batch_size' => 100, 'memory_limit' => '512M', 'timeout' => 60, ], ];
๐ญ Using the Facade
You can use the OptimizerPro facade to access analyzer functionality:
use SubhashLadumor\LaravelOptimizer\Facades\OptimizerPro; // Analyze performance $analysis = OptimizerPro::analyze(); // Generate detailed report $report = OptimizerPro::generateReport();
๐ ๏ธ Helper Functions
The package includes several helper functions:
// Format bytes optimizer_format_bytes(1024); // "1 KB" // Get memory usage optimizer_memory_usage(); // "128 MB" // Get peak memory optimizer_peak_memory(); // "256 MB" // Get execution time optimizer_execution_time(); // 150.25 (ms) // Cache with recommended TTL optimizer_cache_remember('key', 'config', function() { return expensive_operation(); }); // Log optimization activity optimizer_log('Custom optimization completed', ['key' => 'value']); // Check if production optimizer_is_production(); // true/false // Should cache? optimizer_should_cache(); // true/false // Get config value optimizer_get_config('slow_query_threshold', 200); // Clear all cache optimizer_clear_all_cache(); // Warm cache optimizer_warm_cache();
๐ Performance Analysis
The analyzer provides comprehensive performance metrics:
- Performance Metrics: Request time, memory usage, peak memory
- Route Analysis: Total routes, middleware usage
- Database Analysis: Connection time, query count, slow queries
- Cache Analysis: Driver type, read/write performance, hit rate
- System Information: PHP version, Laravel version, environment
Performance Grading
The analyzer assigns a performance score (0-100) and grade (A-F):
- A (90-100): Excellent performance
- B (80-89): Good performance
- C (70-79): Average performance
- D (60-69): Below average
- F (0-59): Poor performance
๐ Scheduled Optimization
Add to your app/Console/Kernel.php:
protected function schedule(Schedule $schedule) { // Run cleanup weekly $schedule->command('optimize:cleanup --force') ->weekly() ->sundays() ->at('01:00'); // Analyze performance daily $schedule->command('optimize:analyze') ->daily() ->at('02:00'); }
๐ฏ Best Practices
Production Environment
-
Always run optimizations after deployment:
php artisan optimize:all
-
Disable debug mode:
APP_DEBUG=false
-
Use Redis for caching and sessions:
CACHE_DRIVER=redis SESSION_DRIVER=redis
-
Enable queue workers:
QUEUE_CONNECTION=redis
Development Environment
-
Clear cache frequently during development:
php artisan optimize:cleanup --force
-
Analyze performance before going to production:
php artisan optimize:analyze --report
๐งช Testing
The package is designed to be safe and non-destructive. Always test in a staging environment first:
# Test analysis (read-only) php artisan optimize:analyze # Test with skip options php artisan optimize:all --skip-cleanup --skip-database
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
๐ License
The MIT License (MIT). Please see License File for more information.
๐จโ๐ป Author
Subhash Ladumor
- Email: subhash@example.com
- GitHub: @subhashladumor
๐ Acknowledgments
- Inspired by Laravel's built-in optimization commands
- Built with โค๏ธ for the Laravel community
๐ Additional Resources
Made with โค๏ธ by Subhash Ladumor