confetticode / error-handler
A great unified error handler for PHP
Requires
- php: ^8.0
- psr/log: ^3.0
- symfony/console: 7.0
- symfony/error-handler: ^7.0
- symfony/http-foundation: ^7.0
Requires (Dev)
- monolog/monolog: ^3.0
- phpunit/phpunit: 10.0
- spatie/ignition: ^1.15
- symfony/var-dumper: ^7.0
This package is not auto-updated.
Last update: 2025-06-20 03:38:36 UTC
README
Installation
Install confetticode/error-handler
as a Composer dependency in your project.
composer require confetticode/error-handler
Usage
Create a new instance of the ErrorHandler
class. By default, HtmlDisplayer
will be initialized. This will display an error html page with status code, message and short description.
$errors = new \Confetti\ErrorHandler\ErrorHandler();
Register the $errors
instance as the global error handler by doing some logic with set_error_handler
, set_exception_handler
and register_shutdown_function
. Then, any uncaught errors/exceptions will be handled.
$errors->register();
You can change displayer by calling the setDisplayer
method.
// Natively available. $errors->setDisplayer(new \ConfetiCode\ErrorHandler\SymfonyDisplayer); // To use IgnitionDisplayer, you have to install "spatie/ignition". $errors->setDisplayer(new \ConfetiCode\ErrorHandler\IgnitionDisplayer);
Integrate with monolog/monolog
, eg: writing logs into files.
composer require monolog/monolog
$logger = new \Monolog\Logger('testing'); $logger->setHandlers([ new \Monolog\Handler\StreamHandler(__DIR__.'/log.txt'), ]); $reporter = new \ConfettiCode\ErrorHandler\LogReporter($logger); $errors->setReporter($reporter);
You may try out error.php file for a quick overview.
License
The confetticode/error-handler
package is licensed under the MIT license.