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

1.0.0 2025-10-19 04:50 UTC

This package is auto-updated.

Last update: 2025-11-19 10:20:59 UTC


README

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

Made with โค๏ธ by Subhash Ladumor

โญ Star this repo | ๐Ÿ› Report Bug | ๐Ÿ’ก Request Feature