enscope/yii2-airbrake

Yii2 Airbrake 集成

安装: 688

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 3

开放问题: 0

类型:yii2-extension

0.2 2017-04-11 11:21 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:46:30 UTC


README

为 Yii2 提供的 Airbrake 集成,它封装了官方的 Airbrake PHP 库 (airbrake/phpbrake)

安装

composer require enscope/yii2-airbrake

使用

虽然不是强制要求,但建议将 AirbrakeService 配置为环境(或甚至公共)配置中的组件,这样就可以在整个应用程序中轻松访问(例如使用 Yii::$app->get('airbrakeService'))。

import enscope\Yii2\Ext\Airbrake\AirbrakeService;
import enscope\Yii2\Ext\Airbrake\AirbrakeFilterFactory;

return [
    // ...
    'components' => [
        // ...
        'airbrakeService' => [
            'class' => AirbrakeService::className(),
            
            'enabled' => true, // default TRUE
            
            'projectId' => [*your-project-id],
            'projectKey' => [*your-project-key],
            
            'environment' => YII_ENV, // default NULL
            'appVersion' => [your-app-version], // default NULL
            'rootDirectory' => [source-root-directory], // default NULL
            'host' => [api-endpoint-host], // default "api.airbrake.io"
            'httpClient' => [http-client-type], // default "default"
            
            'setGlobalInstance' => [boolean], // default TRUE
            'setErrorHandler' => [boolean], // default FALSE
            
            'filters' => [ // default NULL
                // 'PHPSESSID' and '_csrf' parameters should not be transferred to airbrake
                AirbrakeFilterFactory::createParamsFilter(['PHPSESSID', '_csrf']),
            ],
        ],
    ],
];

带有星号的配置选项是必需的,所有其他选项都是可选的。

  • rootDirectory:应设置为您的源根目录,以允许缩短文件路径
  • httpClient:指定要使用的 HTTP 客户端类型,可以配置为
    • AirbrakeService::CLIENT_DEFAULT
    • AirbrakeService::CLIENT_GUZZLE
    • AirbrakeService::CLIENT_CURL
  • setGlobalInstance:如果设置为 true,则当前实例将被设置为全局实例
  • setErrorHandler:如果设置为 true,则当前实例将被设置为 PHP 运行时未处理的异常处理器
  • filters:提供通知预处理的可调用数组

有关 API 的更多信息,请参阅官方 Airbrake PHP 库文档。

AirbrakeFilterFactory

可以用来创建各种过滤规则的工厂类。

AirbrakeFilterFactory::createParamsFilter(array $params, $replacement = 'FILTERED')

该方法将创建一个过滤可调用,它过滤由 $params 指定的参数,并用指定的 $replacement 替换它。示例用法见上方。

控制台支持

可以将集成添加到 Yii 控制台,其中它目前提供了一个跟踪部署的命令(Airbrake API 4 中的新功能,允许用部署标记错误时间线)。

使用

要使用 ConsoleController,需要将 AirbrakeService 配置为组件。

import enscope\Yii2\Ext\Airbrake\ConsoleController;

return [
    // ...
    'controllerMap' => [
        // ...
        'airbrake' => [
            'class' => ConsoleController::className(),
            'airbrakeService' => [component-name], // default "airbrakeService"
        ],
    ],
];

虽然参数可以硬编码在配置中,但控制台控制器支持通过命令行参数设置 inferParametersusernamerevisionrepository 参数。

  • airbrakeService:组件名称或已初始化的实例
  • inferParameters:如果为 TRUE,将使用 exec() 调用发现 repositoryrevision
  • revision:修订标识符,如果允许推断,则通过 git rev-parse HEAD 发现
  • repository:存储库标识符,如果允许推断,则通过 git remote get-url origin 发现
  • username:跟踪部署的用户名(默认 "system")

日志目标

您可以配置 Yii2 日志记录器,将错误自动记录到 Airbrake 服务。

使用

要使用 ConsoleController,需要将 AirbrakeService 配置为组件。

import enscope\Yii2\Ext\Airbrake\AirbrakeTarget;

return [
    // ...
    'components' => [
        // ...
        'log' => [
            // ...
            'targets' => [
                // ...
                [
                    'class' => AirbrakeTarget::className(),
                    'airbrakeService' => 'airbrakeService',
                    'levels' => ['error'],
                ],
            ],
        ],
    ],
];

目标当前不公开其他配置选项,除了由 yii\log\Target 公开的选项之外,还包括服务组件

  • airbrakeService:组件名称或已初始化的实例

许可协议

Yii2 Airbrake 集成采用 MIT 许可协议 (MIT) 进行许可,与原始 PHP Airbrake 库相同,并遵循该库的版本。