labor-digital / sentry-php

Sentry.io PHP 封装,易于在构建管道中集成

安装: 270

依赖项: 0

建议者: 0

安全性: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:composer-plugin

2.0.5 2022-05-27 13:08 UTC

This package is auto-updated.

Last update: 2024-09-27 18:23:29 UTC


README

此包是 sentry.io 的封装。

它还将支持我们的sentry-release 管道脚本以自动提供支持。它将继承所有所需信息,如 dsn 或发布版本,来自共享配置文件。

需求

  • PHP 7.3+
  • Composer v1 或 v2 应该可以工作

安装

使用 composer 安装此包

composer require labor-digital/sentry-php

用法

您可以像使用 sentry PHP SDK 一样使用此库,但是它将检查您的环境中是否实际上需要它。它使用 SENTRY_ACTIVE > 0 或 PROJECT_ENV === "prod" 环境变量来检测是否应启用 sentry 记录。如果您想强制状态,您始终可以使用 Sentry::manualActivation() 方法手动设置。

在您开始记录之前,您需要通过 Sentry::setSentryConfig() 提供配置。此外,sentry 配置可以作为包的 vendor 目录中的 "config.json" 提供。例如:/project/vendor/labor-digital/sentry-php/config.json。注意:您需要在 JSON 对象中用 "sdk" 键包装配置。注意2:请记住,这是由sentry-release 管道使用的内部桥梁。

可用方法

  • Sentry::captureMessage() | 捕获通用消息并发送到 Sentry。
  • Sentry::captureException() | 捕获异常事件并发送到 Sentry。
  • Sentry::captureEvent() | 使用提供的数据捕获通用事件。
  • Sentry::captureLastError() | 记录最新的错误(使用 error_get_last 获取)。
  • Sentry::addBreadcrumb() | 记录新的面包屑,它将被附加到未来的事件中。
  • Sentry::configureScope() | 调用给定的回调,并将当前作用域传递给它,以便可以在其上下文中运行任何操作。
  • Sentry::withScope() | 创建一个新的作用域并在其中执行给定的操作。
  • Sentry::manualActivation() | 如果未通过环境变量自动启用,则手动激活 sentry 记录。
  • Sentry::setSentryConfig() | 用于手动配置或增强由管道集成提供的自动配置。
  • Sentry::registerGlobalHandler() | 注册全局错误和异常处理程序,用于捕获所有未缓存的异常。
  • Sentry::restoreGlobalHandler() | 恢复全局错误和异常处理程序。
  • Sentry::isActivated() | 通过验证类是否正确初始化来检查 sentry 记录是否已激活。
  • Sentry::setHub() | 设置 sentry hub,用于传输消息。
  • Sentry::getHub() | 返回 sentry hub,用于传输消息或 null,如果未激活记录。

全局错误

PHP 对 sentry 的默认实现将自动监听全局异常和错误。此包 禁用 自动全局异常处理。您可以使用 Sentry::registerGlobalHandler() 方法激活它。

管道集成

如上所述多次,封装与我们的 sentry-release 管道无缝集成。这意味着提供的 composer 插件将自动检测构建工件中的 sentry-configuration-file.json 并为封装创建 config.json,以便在运行时读取。插件可以通过环境变量进行配置。

  • BITBUCKET_CLONE_DIR(这通常由bitbucket设置,但您也可以为其他管道进行调整(gitlab: $CI_PROJECT_DIR | github: $GITHUB_WORKSPACE))
  • SENTRY_CONFIG_FILE_LOCATION(默认值: "${BITBUCKET_CLONE_DIR}/sentry-configuration-file.json",包含其他构建步骤使用的编译信息)

Postcardware

您可以自由使用这个包,但如果它进入了您的生产环境,我们非常希望您能从家乡寄给我们一张明信片,说明您正在使用我们的哪个(些)包。

我们的地址是:LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany

我们将发布所有收到的明信片在我们的公司网站上