ErrorDumper
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.
Installation
composer require awesomite/error-dumper
Screenshots
HTML
CLI
How to use?
<?php
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 http://php.net/manual/en/errorfunc.constants.php
*/
$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());
$handler->pushListener($devViewListener);
/**
* 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.
*/
$handler->exitAfterTrigger(true);
/**
* 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.
Versioning
The version numbers follow the Semantic Versioning 2.0.0 scheme.
Examples
To run examples you need at least PHP 5.4.
composer update --dev
bin/webserver.sh
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 maxcdn.bootstrapcdn.com
and code.jquery.com
(@see \Awesomite\ErrorDumper\Views\ViewHtml::getResources
). Add those domains to your Content-Security-Policy
header during display errors.