Skip to content

Latest commit

 

History

History
81 lines (54 loc) · 2.29 KB

Framework Integration.md

File metadata and controls

81 lines (54 loc) · 2.29 KB

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;
});

Integrating with Phalcon

whoops comes packaged with a Phalcon Service Provider: Whoops\Provider\Phalcon\WhoopsServiceProvider. Using it in your existing Phalcon project is easy. The provider uses the default Phalcon DI unless you pass a DI instance into the constructor.

new Whoops\Provider\Phalcon\WhoopsServiceProvider;

// --- or ---

$di = Phalcon\DI\FactoryDefault;
new Whoops\Provider\Phalcon\WhoopsServiceProvider($di);

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",
        "version": "1.0.0",
        "require": {
            "filp/whoops": "1.*"
        }
    }
    
  3. 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.