otsec / yii2-sentry
A Yii2 component for Sentry (http://getsentry.com)
Installs: 1 954
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 1
Requires
- sentry/sentry: ^1.6
- yiisoft/yii2: ^2.0
Requires (Dev)
- phpunit/phpunit: ^6.0
Suggests
- bower-asset/raven-js: to load javascript raven library not from CDN
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();