middlewares/error-handler
Middleware to catch and format errors encountered while handling the request.
Requirements
- PHP >= 7.0
- A PSR-7 http library
- A PSR-15 middleware dispatcher
Installation
This package is installable and autoloadable via Composer as middlewares/error-handler.
composer require middlewares/error-handler
Example
use Middlewares\ErrorFormatter;
use Middlewares\ErrorHandler;
use Middlewares\Utils\Dispatcher;
// Create a new ErrorHandler instance
// Any number of formatters can be added. One will be picked based on the Accept
// header of the request. If no formatter matches, the PlainFormatter will be used.
$errorHandler = new ErrorHandler([
new ErrorFormatter\GifFormatter(),
new ErrorFormatter\HtmlFormatter(),
new ErrorFormatter\JpegFormatter(),
new ErrorFormatter\JsonFormatter(),
new ErrorFormatter\PngFormatter(),
new ErrorFormatter\SvgFormatter(),
new ErrorFormatter\XmlFormatter(),
]);
$errorHandler->defaultFormatter(new ErrorFormatter\PlainFormatter());
// ErrorHandler should always be the first middleware in the stack!
$dispatcher = new Dispatcher([
$errorHandler,
// ...
function ($request) {
throw HttpErrorException::create(404);
}
]);
$request = $serverRequestFactory->createServerRequest('GET', '/');
$response = $dispatcher->dispatch($request);
Options
__construct(array $formatters [])
Add the formatters to be used (instances of Middlewares\ErrorFormatter\FormatterInterface
).
defaultFormatter(FormatterInterface $defaultFormatter)
PlainFormatter
).
Set the default formatter if no content-type matches (by default is Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.
The MIT License (MIT). Please see LICENSE for more information.