middlewares / shutdown
Middleware to display a 503 maintenance page
Installs: 3 145
Dependents: 1
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^7.2 || ^8.0
- middlewares/utils: ^3.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- laminas/laminas-diactoros: ^2.3
- oscarotero/php-cs-fixer-config: ^1.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8|^9
- squizlabs/php_codesniffer: ^3.0
README
Middleware to display a 503
maintenance page.
Requirements
- PHP >= 7.2
- A PSR-7 http library
- A PSR-15 middleware dispatcher
Installation
This package is installable and autoloadable via Composer as middlewares/shutdown.
composer require middlewares/shutdown
Example
$dispatcher = new Dispatcher([ (new Middlewares\Shutdown())->retryAfter(60 * 5) ]); $response = $dispatcher->dispatch(new ServerRequest());
Usage
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);
retryAfter
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'));
render
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.