dopesong/slim-whoops

Slim Framework 3 error handler built on top of the Whoops error handler

2.2.0 2016-11-09 16:29 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

Slim Framework 3 error handler built on top of Whoops Error Handler

Installing

Use Composer to install Whoops into your project:

composer require dopesong/slim-whoops

Requirements

  • PHP >=5.6.0
  • Whoops ^2.0

Usage With Slim 3

use Dopesong\Slim\Error\Whoops as WhoopsError;

include "vendor/autoload.php";

$app = new Slim\App();
$container = $app->getContainer();

$container['phpErrorHandler'] = $container['errorHandler'] = function($c) {
    return new WhoopsError($c->get('settings')['displayErrorDetails']);
};

$app->run();

Additional handlers

Custom handlers can be added to execute additional tasks. For example, you might want to log the error like so:

include "vendor/autoload.php";

use Whoops\Handler\Handler;
use Dopesong\Slim\Error\Whoops as WhoopsError;

$app = new Slim\App();
$container = $app->getContainer();

$container['phpErrorHandler'] = $container['errorHandler'] = function ($container) {
    $logger = $container['logger'];
    $whoopsHandler = new WhoopsError();

    $whoopsHandler->pushHandler(
        function ($exception) use ($logger) {
            /** @var \Exception $exception */
            $logger->error($exception->getMessage(), ['exception' => $exception]);
            return Handler::DONE;
        }
    );

    return $whoopsHandler;
};