Files
whoops/docs/Framework Integration.md
Hannes Van De Vreken b571bc3180 Backticks for code blocks
2015-01-14 21:56:34 +01:00

83 lines
2.3 KiB
Markdown

# Integrating with Silex
**whoops** comes packaged with a Silex Service Provider: `Whoops\Provider\Silex\WhoopsServiceProvider`. Using it
in your existing Silex project is easy:
```php
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`:
```php
$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.
```php
new Whoops\Provider\Phalcon\WhoopsServiceProvider();
// --- or ---
$di = new 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",
"require": {
"filp/whoops": "1.*"
}
}
```
3. [Register it with Packagist](https://packagist.org/packages/submit).
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.