flippa-official/errbit-php

此包已被弃用且不再维护。未建议替代包。

PHP Errbit & Airbrake 客户端

dev-master 2013-05-03 07:04 UTC

This package is not auto-updated.

Last update: 2017-02-19 07:08:47 UTC


README

这是一个功能齐全的客户端,可以将 Errbit(或 Airbrake)的集成添加到任何 PHP >= 5.3 应用程序中。

我们对php-airbrake-notifier客户端有很多问题,因此我们基于实际的 airbrake 宝石编写了此代码。

php-airbrake-notifier 客户端会定期尝试向 Airbrake 服务发送无效的 XML,并且与 Errbit(免费的自托管 Airbrake 兼容应用程序)完全不兼容。

安装

我们没有将其放入 PEAR 或类似的地方(请随时贡献),因此您需要本地安装。

git clone git://github.com/flippa/errbit-php.git

Composer

只需将以下行添加到您的 composer.json 文件中的 require 部分

"flippa-official/errbit-php": "dev-master"

如果您使用上面的行,则不需要要求任何内容,所有内容都将通过 composer-autoloader 自动加载

用法

使用通知器的预期方式是作为单例,尽管这不是强制性的,如果您出于某种奇怪的原因需要,或者单例一词让您伤心,您也可以实例化多个实例。

require_once 'errbit-php/lib/Errbit.php';

Errbit::instance()
  ->configure(array(
    'api_key'           => 'YOUR API KEY',
    'host'              => 'YOUR ERRBIT HOST, OR api.airbrake.io FOR AIRBRAKE',
    'port'              => 80,                                   // optional
    'secure'            => false,                                // optional
    'project_root'      => '/your/project/root',                 // optional
    'environment_name'  => 'production',                         // optional
    'params_filters'    => array('/password/', '/card_number/'), // optional
    'backtrace_filters' => array('#/some/long/path#' => '')      // optional
  ))
  ->start();

这将安装错误处理器,捕获您的 PHP 错误(根据您的 error_reporting 设置)并将它们记录到 Errbit。

如果您想手动通知异常,可以调用 notify()。

try {
  somethingErrorProne();
} catch (Exception $e) {
  Errbit::instance()->notify(
    $e,
    array('controller'=>'UsersController', 'action'=>'show')
  );
}

使用自己的错误处理器

如果您不想安装 Errbit 的自己的错误处理器并希望使用自己的,只需省略对 start() 的调用,然后在您捕获异常的地方(注意错误 必须 转换为异常)简单地调用

Errbit::instance()->notify($exception);

仅使用一些默认处理器

Errbit 安装了三个错误处理器:异常、错误和致命。

默认情况下,都使用这三个处理器。如果您想使用自己的处理器,但不想使用其他处理器,请将列表传递给 start() 方法。

Errbit::instance()->start(array('error', 'fatal')); // using our own exception handler

待办事项

一些测试会很好。

许可证 & 版权

版权 © Flippa.com Pty. Ltd. 根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。