没有不值得去解决的问题,也没有不值得去学习的技术!

将 Sentry 9 与 Yii 2 高级项目模板 集成的实现

在配置您的应用程序的 All 选项中,不存在 Yii2 框架,只能够选择 PHP
1、在配置您的应用程序的 All 选项中,不存在 Yii2 框架,只能够选择 PHP,如图1
在配置您的应用程序的 All 选项中,不存在 Yii2 框架,只能够选择 PHP
图1
2、为 Sentry 安装 PHP 集成。推荐的方法是使用 Composer,不过决定暂不采用此方案,如图2   3、在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现,如图3
为 Sentry 安装 PHP 集成。推荐的方法是使用 Composer,不过决定暂不采用此方案
图2
3、在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现,如图3
在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现
图3
4、打开网址:https://github.com/hellowearemito/yii2-sentry ,执行命令,如图4
打开网址:https://github.com/hellowearemito/yii2-sentry ,执行命令
图4


composer require --prefer-dist mito/yii2-sentry "~1.0.0"


5、安装扩展后,在开发环境的配置文件中设置配置,编辑 \environments\dev\api\config\main-local.php


return [
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '',
        ],
        'sentry' => [
            'class' => 'mito\sentry\Component',
            'enabled' => false, // 设置为 false 以跳过收集错误,即禁用 Sentry,默认:true
            'dsn' => 'YOUR-PRIVATE-DSN', // 私有 DSN
            'environment' => 'development', // 环境,development:开发环境;production:生产环境,默认:production
            'jsNotifier' => false, // 收集 JS 错误,默认:false
            'jsOptions' => [ // raven-js 配置参数
                'whitelistUrls' => [ // 收集JS错误的网址
                    'http://api.gitlab-php-yii2-app-advanced-cmc.localhost',
                ],
            ],
        ],
    ],
];


6、安装扩展后,在生产环境的配置文件中设置配置,编辑 \environments\prod\api\config\main-local.php


return [
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '',
        ],
        'sentry' => [
            'class' => 'mito\sentry\Component',
            'enabled' => false, // 设置为 false 以跳过收集错误,即禁用 Sentry,默认:true
            'dsn' => 'YOUR-PRIVATE-DSN', // 私有 DSN
            'environment' => 'production', // 环境,development:开发环境;production:生产环境,默认:production
            'jsNotifier' => false, // 收集 JS 错误,默认:false
            'jsOptions' => [ // raven-js 配置参数
                'whitelistUrls' => [ // 收集JS错误的网址
                    'http://api.gitlab-php-yii2-app-advanced-cmc.localhost',
                ],
            ],
        ],
    ],
];


7、配置日志组件,以支持将日志发送至 Sentry,编辑 \api\config\main.php


    'components' => [
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                'sentry' => [
                    'class' => 'mito\sentry\Target',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
    ],


8、初始化选择开发环境,编辑 \api\config\main-local.php,如图5
初始化选择开发环境,编辑 \api\config\main-local.php
图5


init
0
yes
All


9、私有 DSN 的值,需要从 /settings/sentry/pcs-api/install/php/ 的 Configuration 中复制,如图6
私有 DSN 的值,需要从 /settings/sentry/pcs-api/install/php/ 的 Configuration 中复制
图6
10、GET 请求接口,响应 302,如图7
GET 请求接口,响应 302
图7


{
    "name": "Found",
    "message": "框架服务控制台HTTP请求失败:登录超时",
    "code": 20039,
    "status": 302,
    "type": "yii\\web\\HttpException"
}


11、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry,如图8
查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry
图8
12、初始化选择生产环境,编辑 \api\config\main-local.php,如图9
初始化选择生产环境,编辑 \api\config\main-local.php
图9


init
1
yes
All


13、GET 请求接口,响应 404,如图10
GET 请求接口,响应 404
图10


{
    "name": "Not Found",
    "message": "用户ID:10,不存在",
    "code": 20002,
    "status": 404
}


14、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry,如图11
查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry
图11
15、初始化选择开发环境后,不编辑 \api\config\main-local.php,如图12
初始化选择开发环境后,不编辑 \api\config\main-local.php
图12
16、GET 请求接口,响应 404,如图13
GET 请求接口,响应 404
图13


{
    "name": "Not Found",
    "message": "用户ID:11,不存在",
    "code": 20002,
    "status": 404,
    "type": "yii\\web\\NotFoundHttpException"
}


17、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志未发送至 Sentry,因为已禁用 Sentry,如图14
查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志未发送至 Sentry,因为已禁用 Sentry
图14
18、再次重复第 15、16、17步骤,第15步骤的环境选择生产环境,发现对应的日志未发送至 Sentry,符合预期,因为已禁用 Sentry,如图15
再次重复第 15、16、17步骤,第15步骤的环境选择生产环境,发现对应的日志未发送至 Sentry,符合预期,因为已禁用 Sentry
图15

PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理