juanisorondo/yii2-phpbrake

Yii2 PHPBrake集成

安装次数: 11,081

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 3

开放问题: 2

类型:yii2-extension

v1.4.0 2024-05-16 19:11 UTC

README

为Yii2提供Airbrake集成,它围绕官方的Airbrake PHP库(airbrake/phpbrake)进行包装。

安装

composer require biller/yii2-airbrake

使用

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

return [
    // ...
    'components' => [
        // ...
        'airbrakeService' => [
            'class' => biller\phpbrake\AirbrakeService::class,

            '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
                [
                    'class' => biller\phpbrake\ParamsFilter::class,
                    'params' => ['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::class,
            '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配置为组件。

return [
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => biller\phpbrake\AirbrakeTarget::class,
                    'levels' => ['error'],
                ],
            ],
        ],
    ],
];

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

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

许可

Yii2 Airbrake集成根据MIT许可(MIT)许可,原始PHP Airbrake库也是如此,并遵循该库的版本。