dot-errorhandler is Dotkernel's PSR-15 compliant error handler.
Documentation is available at: https://docs.dotkernel.org/dot-errorhandler/
- Add the composer package:
composer require dotkernel/dot-errorhandler
- Add the config provider:
- in
config/config.php
add\Dot\ErrorHandler\ConfigProvider
- in
config/pipeline.php
add\Dot\ErrorHandler\ErrorHandlerInterface::class
- the interface is used as an alias to keep all error handling related configurations in one file
- in
If you need other error handlers, you should place them before dot-errorhandler in the pipeline; else it will not be able to catch errors. We recommend using just one error handler unless you have an error-specific handler.
- Configure the error handler as shown below.
In config/autoload/error-handling.global.php
:
<?php
use Dot\ErrorHandler\ErrorHandlerInterface;
use Dot\ErrorHandler\LogErrorHandler;
use Dot\ErrorHandler\ErrorHandler;
return [
'dependencies' => [
'aliases' => [
ErrorHandlerInterface::class => LogErrorHandler::class,
]
],
'dot-errorhandler' => [
'loggerEnabled' => true,
'logger' => 'dot-log.default_logger'
]
];
A configuration example for the default logger can be found in config/log.global.php.dist
.
When configuring the error handler in your application, you can choose between two classes:
Dot\ErrorHandler\LogErrorHandler
: for logging and displaying errorsDot\ErrorHandler\ErrorHandler
: for displaying errors only
Both
LogErrorHandler
andErrorHandler
have factories declared in the package'sConfigProvider
. If you need a custom ErrorHandler, it must have a factory declared in the config, as in the below example:
<?php
use Dot\ErrorHandler\ErrorHandlerInterface;
use Custom\MyErrorHandler;
use Custom\MyErrorHandlerFactory;
return [
'dependencies' => [
'factories' => [
MyErrorHandler::class => MyCustomHandlerFactory::class,
],
'aliases' => [
ErrorHandlerInterface::class => MyErrorHandler::class,
]
],
'dot-errorhandler' => [
'loggerEnabled' => true,
'logger' => 'dot-log.default_logger',
]
];
Config examples can be found in this project's config
directory.