otsec/yii2-sentry

A Yii2 component for Sentry (http://getsentry.com)

0.9.0 2017-02-28 13:25 UTC

This package is not auto-updated.

Last update: 2024-04-14 00:38:50 UTC


README

Automatically catch all PHP and JS errors and send them to Sentry.

Supports PHP SDK and JavaScript Client.

Installation

Install via composer.

composer require --prefer-dist otsec/yii2-sentry

Add component to your application configuration:

return [
    'components' => [
    	...
    
        'sentry' => [
            'class' => 'otsec\yii2\sentry\Raven',
            'dsn' => 'https://****@sentry.io/12345',
        ],
    ],
];

Do not forget to bootstrap it to register event handlers.

return [
    'bootstrap' => ['sentry'],
    
    ...
];

You are ready to go!

Configuration

There are a lot of options profived.

'components' => [
	...
	
    'sentry' => [
	    ...
	    
	    // Register Raven_Client error and exception handler on init.
	    // Enabled by default
        'enableErrorHandler' => true,

        // Options will be passed to Raven_Client
        'options' => [],
        
        // Cathing JS errors is disabled by default.
        'enableClientScript' => false,
        
        // Options for client library.
        'clientOptions' => [],
        
        // DSN for client libary. 
        // Will be extracted from private DSN if empty.
        'publicDsn' => null,
        
        // Client library will be loaded from CDN by default.
        // You can use any other asset bundle if you want. 
        'assetBundle' => 'otsec\yii2\sentry\RavenCdnAsset',
        
        // Asset bundles for Bower and NPM already created but you have to 
        // install assets before you will use it.
        // 'assetBundle' => 'otsec\yii2\sentry\RavenBowerAsset',
        // 'assetBundle' => 'otsec\yii2\sentry\RavenNpmAsset',
    ],
],

Usage

Component registers error handler by default. It will catch any appeared error or not captured exception.

Captured exceptions can be handled manually.

try {
	throw new Exception('Oh, shit!');
} catch (Exception $e) {
	Yii::$app->sentry->captureException($e, ['extra' => 'data']);
}

There are some methods to work with context.

Yii::$app->sentry->extraContext($data);
Yii::$app->sentry->tagsContext($data);
Yii::$app->sentry->userContext($data);
Yii::$app->sentry->clearContext();

Or you can get access to Raven_Client itself.

$ravenClient = Yii::$app->sentry->getClient();