Pretty preview of errors and exceptions

v0.14.0 2018-10-01 17:28 UTC


Latest Stable Version Latest Unstable Version Codacy Badge Coverage Status Build Status

Debugger integrated with PhpStorm. ErrorDumper allows you to catch all kinds of errors and exceptions in PHP. You will be able to serialize, restore and display them later in readable form. @See example.


composer require awesomite/error-dumper



Exception displayed as HTML


Exception displayed in terminal

How to use?


use Awesomite\ErrorDumper\Handlers\ErrorHandler;
use Awesomite\ErrorDumper\Listeners\OnExceptionCallable;
use Awesomite\ErrorDumper\Listeners\OnExceptionDevView;
use Awesomite\ErrorDumper\Views\ViewFactory;

 * Create new error handler.
 * If $mode is null will be used default value E_ALL | E_STRICT.
 * @see
$handler = new ErrorHandler(/* optional $mode = null */);

 * Create and push new error listener,
 * this handler will print programmer-friendly stack trace.
$devViewListener = new OnExceptionDevView(ViewFactory::create());

 * Create and push new custom error listener.
$handler->pushListener(new OnExceptionCallable(function ($exception) {
    // do something with $exception

 * Create and push new custom error listener,
 * this handler will be used only when $exception is instance of \RuntimeException.
$handler->pushListener(new OnExceptionCallable(function (\RuntimeException $exception) {
    // do something with $exception

 * Exit script when error has been detected after executing all listeners.

 * Register error handler.
 * Possible types:
 *   - ErrorHandler::TYPE_ERROR
 *   - ErrorHandler::TYPE_EXCEPTION
 *   - ErrorHandler::TYPE_FATAL_ERROR
$handler->register(/* optional bitmask $types = ErrorHandler::TYPE_ALL */);

Read documentation.


The version numbers follow the Semantic Versioning 2.0.0 scheme.


To run examples you need at least PHP 5.4.

composer update --dev

Execute above commands and open in your browser url http://localhost:8001. To run example in terminal, execute bin/test.php.

Content Security Policy

This library uses *.js files hosted on and (@see \Awesomite\ErrorDumper\Views\ViewHtml::getResources). Add those domains to your Content-Security-Policy header during display errors.

Symfony integration

Error Dumper Bundle