-
原版sentry更新比较多,如果需要可以自行 fork 然后修改。
- https://docs.sentry.io/platforms/php/
- https://docs.sentry.io/platforms/php/guides/laravel/
- https://docs.sentry.io/platforms/php/guides/laravel/other-versions/lumen/
-
新版升级,改动较多
- 使用 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 givenvendor/sentry/sentry/src/Transport/HttpTransport.php:110vendor/symfony/http-client/Response/CurlResponse.php:74
解决方案:
- 编译
swoole的时候, 需要启用--enable-swoole-curl参数, - 关闭CURL HOOK,修改
SWOOLE_HOOK_FLAGStoSWOOLE_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 保持一致
| version | hyperf version | 说明 |
|---|---|---|
| 0.1.* | 1.1.* | - |
| 2.0.* | 2.0.* | - |
| 2.2.* | >=2.1.* | 本次更新移除 hyperf 包依赖 |
| 3.0.* | >=3.0.* | 因为 Hyperf\Utils\Context => Hyperf\Utils\Context |
- 安装
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