Middleware to display a 503
maintenance page.
- PHP >= 7.2
- A PSR-7 http library
- A PSR-15 middleware dispatcher
This package is installable and autoloadable via Composer as middlewares/shutdown.
composer require middlewares/shutdown
$dispatcher = new Dispatcher([
(new Middlewares\Shutdown())->retryAfter(60 * 5)
]);
$response = $dispatcher->dispatch(new ServerRequest());
This middleware generates a 503
response to display while the server is in maintenance. Optionally, you can provide a Psr\Http\Message\ResponseFactoryInterface
used to create the responses. If it's not defined, Middleware\Utils\Factory will be used to detect it automatically.
$responseFactory = new MyOwnResponseFactory();
$maintenance = new Middlewares\Shutdown($responseFactory);
If known, the length of the downtime in seconds or the estimated date and time when the downtime will be complete. More info about why this
//Retry after 5 minutes
$maintenance = (new Middlewares\Shutdown())->retryAfter(60 * 5);
//You can use also a DateTimeInterface object
$maintenance = (new Middlewares\Shutdown())->retryAfter(new Datetime('+5 minutes'));
Use this option to customize the content of the response by providing a callable that returns a string:
//Load a html file
$maintenance = (new Middlewares\Shutdown())->render(function () {
return file_get_contents('503.html');
});
Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.
The MIT License (MIT). Please see LICENSE for more information.