Skip to content

⚑️ Boost your Laravel app speed with one command! Optimize cache, database, routes, views & assets. πŸš€ The ultimate Laravel performance suite.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

subhashladumor1/laravel-optimizer

Repository files navigation

πŸš€ Laravel Optimizer

Latest Version on Packagist Laravel Version PHP Version License

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 .env improvements
  • 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

  1. Always run optimizations after deployment:

    php artisan optimize:all
  2. Disable debug mode:

    APP_DEBUG=false
  3. Use Redis for caching and sessions:

    CACHE_DRIVER=redis
    SESSION_DRIVER=redis
  4. Enable queue workers:

    QUEUE_CONNECTION=redis

Development Environment

  1. Clear cache frequently during development:

    php artisan optimize:cleanup --force
  2. 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


πŸ™ Acknowledgments

  • Inspired by Laravel's built-in optimization commands
  • Built with ❀️ for the Laravel community

πŸ“š Additional Resources

About

⚑️ Boost your Laravel app speed with one command! Optimize cache, database, routes, views & assets. πŸš€ The ultimate Laravel performance suite.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages