minbaby / hyperf-sentry
Installs: 23 137
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 3
Forks: 9
Open Issues: 0
Requires
- php: >=8.0
- sentry/sdk: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.12.0
- hyperf/command: ~3.0.0
- hyperf/context: ~3.0.0
- hyperf/database: ~3.0.0
- hyperf/di: ~3.0.0
- hyperf/framework: ~3.0.0
- hyperf/logger: ~3.0.0
- hyperf/testing: ~3.0.0
- monolog/monolog: ^2.0
- phpstan/phpstan: ^0.12
- swoole/ide-helper: dev-master
This package is auto-updated.
Last update: 2025-02-16 09:55:00 UTC
README
WARNING
-
原版sentry更新比较多,如果需要可以自行 fork 然后修改。
-
新版升级,改动较多
- 使用 class_map 重写
\Sentry\SentrySdk
- 使用 Aspect,拦截单例,
Minbaby\HyperfSentry\Aspect\SingletonHookAspect::class
- 使用 class_map 重写
已知问题
-
sentry/sdk 依赖的 http 类库报错
报错
Argument 1 passed to swoole_curl_setopt() must be an instance of Swoole\Curl\Handler, null given
vendor/sentry/sentry/src/Transport/HttpTransport.php:110
vendor/symfony/http-client/Response/CurlResponse.php:74
解决方案:
- 编译
swoole
的时候, 需要启用--enable-swoole-curl
参数, - 关闭CURL HOOK,修改
SWOOLE_HOOK_FLAGS
toSWOOLE_HOOK_ALL ^ SWOOLE_HOOK_CURL
说明:
- 从 v4.5.4 版本起,
SWOOLE_HOOK_ALL
包括SWOOLE_HOOK_CURL
(这种是不完全hook,在某些场景下会报错) - 从 v4.6.0 版本起,启用
--enable-swoole-curl
后,SWOOLE_HOOK_ALL
包括SWOOLE_HOOK_NATIVE_CURL
说明
sentry/sdk
类库经过更新迭代,当前版本已经非常现代化了(3.0+)。再辅以 Hyperf
2.0+ 强大的 AOP
功能,除了少部分单例和辅助方法,基本已经不需要特殊修改了。
版本
主版本和 hyperf 保持一致
使用
- 安装
composer require minbaby/hyperf-sentry
- 配置文件
发布: php bin/hyperf.php vendor:publish minbaby/hyperf-sentry
然后在 .env
中添加 SENTRY_DSN=
- 注册
SentryExceptionHandler
return [ 'handler' => [ 'http' => [ Minbaby\HyperfSentry\SentryExceptionHandler::class, App\Exception\Handler\AppExceptionHandler::class, ], ], ];
- 执行
php bin/hyperf.php sentry:test