- Is nicolassing/maintenance-bundle compatible with Laravel?
- No. It is a Symfony bundle (Composer type symfony-bundle) registered via AppKernel or bundles.php and wired through the Symfony DI container and the kernel.request event. It ships no Laravel service provider, no facade, and no publishable config, so it will not boot in a Laravel app. For Laravel, use php artisan down with a custom resources/views/errors/503.blade.php instead.
- How do I install nicolassing/maintenance-bundle?
- Run composer require nicolassing/maintenance-bundle and then register the bundle in AppKernel (Symfony 2/3) or config/bundles.php (Symfony 4+). The install only succeeds if the bundle's Symfony constraints resolve against your application's dependency graph. Given the absence of recent releases, expect conflicts on Symfony 5, 6, and 7 projects.
- Which Symfony and PHP versions does this bundle support?
- The bundle targets the Symfony 2.x era and possibly early 3.x, but the exact constraint set must be verified in its composer.json before you do anything else. With no visible release activity, it will almost certainly hard-conflict with Symfony 5/6/7 and block the whole dependency graph, not just this package. If you need it on a modern stack, you would have to fork and widen the constraints yourself.
- How do I turn maintenance mode on and off with this bundle?
- The bundle advertises hard and soft maintenance modes, toggled through its configuration rather than a Laravel-style artisan command. Read the bundle source first, since it is small enough to audit in an afternoon, and confirm exactly which parameter or state mechanism the kernel.request listener checks. If the toggle requires a deploy or container rebuild, consider whether an infrastructure-level switch would serve you better.
- Can I customize the maintenance page and control the HTTP response?
- Yes in principle: as a Symfony bundle it returns a 503 response and lets you override the holding-page template, which is the standard behavior visitors see during deployments, migrations, or upgrades. Confirm in the source which template path it renders and whether a Retry-After header is set. If you need fine-grained control over status codes, headers, or per-route behavior, a short in-repo listener is easier to own.
- Does it support IP allowlisting or a secret bypass URL?
- IP allowlisting and secret preview URLs are not part of the documented feature set, so verify against the listener code before assuming they exist. If you need those behaviors, they are trivial to add in a custom kernel.request listener or better handled at the load balancer or ingress layer. Laravel's equivalent, php artisan down --secret, gives you a bypass token out of the box.
- Is this bundle safe to use in production?
- Treat it with caution: it sits in front of every request, so a boot-time failure such as bad DI configuration or an incompatible method signature takes down production entirely, which is worse than the maintenance mode it was meant to provide. There is no maintainer triage, security policy, or CVE response path, and an abandoned package in the request hot path is a standing supply-chain risk. The mitigating factor is the small code surface, which is auditable and forkable, so adopt it only if you are prepared to own a fork.
- What is the best alternative to this bundle for Symfony maintenance mode?
- Build a small in-repo MaintenanceListener that checks a maintenance.enabled parameter and returns a 503 response, which typically takes under a day and removes all external version constraints. The established third-party option, lexik/maintenance-bundle, is itself archived, which is a strong signal about the category. Many teams now gate traffic at the load balancer, ingress, or feature-flag layer instead of inside the application.
- How does this compare to Laravel's php artisan down?
- Laravel's maintenance mode is first-party and version-guaranteed: artisan down supports a --secret preview bypass, --render for a custom view, and --retry for Retry-After, backed by the CheckForMaintenanceMode middleware. That covers the same use case with no third-party dependency and no cross-framework bridging. Do not try to bridge a Symfony bundle into Laravel to replicate it.
- Is nicolassing/maintenance-bundle still maintained?
- Evidence points to abandonment: zero stars, zero dependents, and no visible release activity or maintainer triage. There is no security policy and no documented response path if a release breaks. Because the code is only roughly 50 to 100 lines, forking and owning it is feasible, but for most teams a hand-rolled listener or infrastructure-level gating is the safer choice.