symfony/http-kernel, symfony/dependency-injection) or a Lumen/Symfony hybrid stack. For pure Laravel, integration would require middleware adaptation (see Integration Approach).spatie/laravel-symfony-support).// app/Http/Middleware/MaintenanceMode.php
public function handle(Request $request, Closure $next) {
if (config('maintenance.enabled') && !in_array($request->ip(), config('maintenance.ips'))) {
abort(503, view('maintenance'));
}
return $next($request);
}
config/maintenance.php), but Twig templates would need Blade equivalents.twig/twig v2/3). Mitigate via composer require constraints.php artisan cache:clear) or middleware-based bypass logic.dev by default; Laravel’s .env system would need alignment (e.g., MAINTENANCE_ENABLED=true in prod).| Component | Symfony/Lumen | Pure Laravel |
|---|---|---|
| Core Logic | Direct bundle usage (artgris/maintenance-bundle) |
Custom middleware + config replication |
| Templating | Twig (maintenance.html.twig) |
Blade (resources/views/maintenance.blade.php) |
| Configuration | config/packages/artgris_maintenance.yaml |
config/maintenance.php (custom) |
| Caching | Symfony cache (cache:clear) |
Laravel cache (cache:clear) + middleware bypass |
Symfony/Lumen Apps:
composer require artgris/maintenance-bundle.config/bundles.php and set artgris_maintenance.yaml.dev environment exclusion and IP whitelisting.php bin/console cache:clear).Pure Laravel Apps:
MaintenanceMode) to replicate bundle logic.config/maintenance.php) with enabled, ips, and status_code keys.app/Http/Kernel.php.resources/views/maintenance.blade.php).php artisan cache:clear or middleware-based cache bypass).composer.json).twig/bridge or convert templates to Blade.cache:clear triggers).php artisan maintenance:enable).artgris/maintenance-bundle for Symfony version compatibility.twig/twig and Symfony component updates.bin/console debug:config artgris_maintenance for config validation.Log::debug('Maintenance check:', ['ip' => $request->ip()])).ips config includes all prod server IPs (including load balancers).maintenance:clear-cache artisan command if using custom caching.laravel-debugbar).| Scenario | Symfony Bundle | Laravel Middleware |
|---|---|---|
| Config Error | 500 error (misconfigured YAML) | Silent fail (default to enabled: false) |
| Cache Not Cleared | Stale maintenance page | Same; add php artisan cache:clear to toggle script. |
| IP Misconfiguration | All users blocked (if ips empty) |
Same; validate config in middleware. |
| Template Missing | Default Twig template rendered | 500 error (Blade template not found) |
php artisan maintenance:enable).enable: false + cache clear.enabled: false in config.How can I help you explore Laravel packages today?