Files
whoops/docs/Framework Integration.md
T
2015-11-22 11:18:29 +02:00

1.8 KiB

Integrating with Silex

whoops comes packaged with a Silex Service Provider: Whoops\Provider\Silex\WhoopsServiceProvider. Using it in your existing Silex project is easy:


require 'vendor/autoload.php';

use Silex\Application;

// ... some awesome code here ...

if ($app['debug']) {
    $app->register(new Whoops\Provider\Silex\WhoopsServiceProvider());
}

// ...

$app->run();

And that's about it. By default, you'll get the pretty error pages if something goes awry in your development environment, but you also have full access to the whoops library, obviously. For example, adding a new handler into your app is as simple as extending whoops:

$app['whoops'] = $app->extend('whoops', function ($whoops) {
    $whoops->pushHandler(new DeleteWholeProjectHandler());
    return $whoops;
});

Contributing an integration with a framework

Lately we're prefering to keep integration libraries out of the Whoops core. If possible, consider managing an official Whoops-SomeFramework integration.

The procedure is not hard at all.

  1. Keep your integration classes and instructions in a repository of your own;
  2. Create a composer.json file in your repository with contents similar to the following:
{
    "name": "username/whoops-someframework",
    "description": "Integrates the Whoops library into SomeFramework",
    "require": {
        "filp/whoops": "1.*"
    }
}
  1. Register it with Packagist.

Once that is done, please create an issue and we will add a link to it in our README.

SomeFramework users then would write this in their composer.json:

    "require": {
        "username/whoops-someframework": "*"
    }

This would also install Whoops and you'd be able to release updates to your package as quickly as you wish them to.