tigron/skeleton-error

v0.2.7 2024-09-12 12:27 UTC

This package is auto-updated.

Last update: 2024-09-12 12:29:32 UTC


README

描述

此库包含 skeleton 的错误处理逻辑。

如果检测到其存在并且存在所需的配置,它将使用 filp/whoopssentry/sentry。如果没有,它将回退到自己的基本错误处理器。

基本错误处理器可以打印调试信息,还可以将电子邮件发送到配置的地址。

安装

通过 composer 安装

composer require tigron/skeleton-error

配置

如果您想为您的应用程序启用 skeleton-error,您需要调用 Handler::enable() 方法,该方法将注册错误处理器

\Skeleton\Error\Handler::enable();

debug 标志设置为 true 将导致在浏览器中显示详细的错误消息,使用基本内置处理器或 filp/whoops,具体取决于可用的内容

\Skeleton\Error\Config::$debug = true;

您可以向错误处理器提供附加信息,例如版本号和错误发生的环境。这有助于过滤报告。目前这仅由 sentry 处理器支持

\Skeleton\Error\Config::$environment = 'development';
\Skeleton\Error\Config::$release = 'project@1.0.0';

电子邮件处理器

如果您希望通过电子邮件接收错误报告,请将 mail_errors_tomail_errors_from 选项设置为相关地址。您还需要确保您的应用程序运行在的系统可以发送邮件

\Skeleton\Error\Config::$mail_errors_to = 'colleague@example.com';
\Skeleton\Error\Config::$mail_errors_from = 'errors@example.com';

Sentry 处理器

如果您想使用 Sentry,您需要安装 sentry/sdk(推荐)或 sentry/sentry(已弃用)。

安装后,配置它将使用的 DSN

\Skeleton\Error\Config::$sentry_dsn = 'http://foo:bar@sentry.example.com/1';

Whoops 处理器

如果您想使用 Whoops,您需要安装 filp/whoops。无需其他配置。

事件

错误上下文

sentry_before_send

sentry_before_send 可以有两个不同的签名,具体取决于您安装的 Sentry 版本。

对于 sentry\sdk(依赖于 sentry/sentry 版本 2 或更高),事件将被调用为 beforeSend 回调。在下面的示例中,我们使用 $event->getUserContext() 用于版本 2,而版本 3 应使用 $event->getUser()。更多信息请参阅 此处

public function sentry_before_send(\Sentry\Event $event) {
    $event->getUserContext()->setUsername('john-doe');
    return $event;
}

对于已弃用的 sentry\sentry 版本 1 及以下,事件将被调用为 send_callback 函数。更多信息请参阅 此处

public function sentry_before_send(&$data) {
    $data['user']['username'] = 'john-doe';
}