labor-digital / sentry-php
Sentry.io PHP 封装,易于在构建管道中集成
Requires
- composer-plugin-api: ^1.0 || ^2.0
- composer-runtime-api: ^2.0
- sentry/sdk: ^3.1.1
Requires (Dev)
- composer/composer: ^2.1
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
我们将发布所有收到的明信片在我们的公司网站上。