tigron / skeleton-error
骨架错误处理
Suggests
- filp/whoops: Provides a pretty error interface to assist with debugging
- sentry/sdk: Enables automatic reporting of issues with Sentry
README
描述
此库包含 skeleton
的错误处理逻辑。
如果检测到其存在并且存在所需的配置,它将使用 filp/whoops
和 sentry/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_to
和 mail_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';
}