brenno-duarte / prettyexception
PrettyException is a component that helps to manipulate the Whoops component.
Requires
- php: ^7.4|^8.0
- filp/whoops: 2.*
This package is auto-updated.
Last update: 2024-11-18 10:47:28 UTC
README
PrettyException is a component that helps to manipulate the Whoops component.
How to use
use PrettyException\PrettyException; $exception = new PrettyException();
You can return the error using:
inPretty
: returns with the Whoops screeninJson
: returns the exception in JSONinText
: returns the exception in textinXml
: returns the exception in XML
Then use the run
method.
$exception = new PrettyException(); $exception->inPretty()->run();
Customizing the exception screen
It is possible to make some customizations on the exception screen.
setTitle
: Sets the title for the error page.
$exception->setTitle('New Exception');
table
: Adds a key=>value table of arbitrary data, labeled by $label, to the output. Useful where you want to display contextual data along with the error, about your application or project.
$exception->table('New Exception', [ 'exc' => 'test', 'exc2' => 10 ]);
tableCallback
: Similar to PrettyPageHandler::addDataTable, but accepts a callable that will be called only when rendering an exception. This allows you to gather additional data that may not be available very early in the process.
$exception->tableCallback('New Exception Callback', function(\Whoops\Exception\Inspector $inspector) { $data = array(); $exception = $inspector->getException(); if ($exception instanceof SomeSpecificException) { $data['Important exception data'] = $exception->getSomeSpecificData(); } $data['Exception class'] = get_class($exception); $data['Exception code'] = $exception->getCode(); return $data; });
closeTableAndRun
: Closes the table and executes the exception. Optionally, you can add a comment.
$exception->closeTableAndRun($comment);
Running exception in other formats
In some cases like AJAX requests or using the command line, it is possible to display exceptions using runIfAjax
and runIfCli
.
runIfAjax
will be executed if there are any AJAX requests and returned in JSON. Otherwise, the standard exception screen will be displayed.
runIfCli
will only be run from the PHP command line.
$run->runIfAjax('Exception in AJAX'); $run->runIfCli('Exception in CLI');
License
MIT