Skip to content
これは pieceofcake2/sentry のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

Sentry ドキュメント ​

pieceofcake2/sentry は、CakePHP 2 アプリケーションのエラーとキャッチされなかった例外を、 Sentry PHP SDK を使って Sentry に報告します。 CakePHP の ErrorHandler を継承した SentryErrorHandler を提供します。エラーと例外はこれまでどおり CakePHP が ログに記録して表示し、さらに Sentry にも送信されます。

インストール ​

Composer でプラグインをインストールします。

bash
composer require pieceofcake2/sentry

このプラグインは cakephp-plugin タイプなので、composer/installers によってプラグインのディレクトリに インストールされます。正しい場所にインストールされるように、アプリケーションの composer.json で installer-paths を設定してください。

構成installer-paths
モダン (config/、src/、templates/、plugins/)"plugins/{$name}/": ["type:cakephp-plugin"]
レガシー (app/Config/、app/Plugin/)"app/Plugin/{$name}/": ["type:cakephp-plugin"]

プラグインは config/bootstrap.php (レガシー構成では app/Config/bootstrap.php) で読み込みます。 すでに CakePlugin::loadAll() を使っている場合は必要ありません。

php
CakePlugin::load('Sentry');

設定 ​

config/core.php (レガシー構成では app/Config/core.php) でプラグインを設定し、SentryErrorHandler を エラーハンドラーと例外ハンドラーとして登録します。

php
Configure::write('Sentry', [
    'dsn' => 'SENTRY_DSN',
    'options' => [
        'environment' => 'SENTRY_ENVIRONMENT',
        'release' => 'SENTRY_RELEASE',
    ],
    'ignoredExceptions' => [
        NotFoundException::class,
        MissingControllerException::class,
        MissingActionException::class,
    ],
]);
App::uses('SentryErrorHandler', 'Sentry.Lib/Error');
php
Configure::write('Error', [
    'handler' => 'SentryErrorHandler::handleError',
    'level' => E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED,
    'trace' => true,
]);
php
Configure::write('Exception', [
    'handler' => 'SentryErrorHandler::handleException',
    'renderer' => 'ExceptionRenderer',
    'log' => true,
]);

CakePHP は bootstrap.php を読み込んだ後でハンドラーを登録するので、そこでプラグインを読み込んでいればクラスが見つかります。

キー説明
Sentry.dsnSentry プロジェクトの DSN。
Sentry.optionsenvironment、release、sample_rate など、Sentry\init() に渡すオプション。dsn には Sentry.dsn の値が設定されます。
Sentry.ignoredExceptionsSentry に送信しない例外クラス。サブクラスも無視されます。これらの例外も CakePHP では引き続き処理されます。

報告される内容 ​

Sentry SDK は、最初のエラーまたは例外を処理するときに初期化されます。

  • エラー (warning、notice など) は CakePHP の ErrorHandler::handleError() に渡され、そのレベルが error_reporting() に含まれていれば ErrorException として Sentry に送信されます。
  • キャッチされなかった例外 は CakePHP の ErrorHandler::handleException() に渡され、 Sentry.ignoredExceptions のいずれかのインスタンスでなければ Sentry に送信されます。
  • 致命的なエラー (E_ERROR、E_PARSE、E_CORE_ERROR と E_COMPILE_ERROR) は、リクエストの終了時に CakePHP が エラーハンドラーに渡し、他のエラーと同じように報告されます。

由来 ​

このパッケージは pieceofcake2 が作成し、メンテナンスしています。 他のプロジェクトのフォークではなく、他のプロジェクトをもとにしたものでもありません。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。