# think-msg **Repository Path**: goodbugood/think-msg ## Basic Information - **Project Name**: think-msg - **Description**: 这是为 thinkphp 准备的消息推送扩展,开箱即用,但是异常消息推送也被我揉进去了,后面有时间再拆分,其实是两个扩展,异常消息推送处理,消息推送基础。 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-09 - **Last Updated**: 2026-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # think-msg ## 帮助 ### 安装 ```php composer require shali/think-msg ``` ### 使用 1. v1.x.x 版本,安装完成会自动接管你的异常,并处理异常消息发送 2. v2.x.x 版本,安装完成不再强制接管你的异常,如果你需要处理异常消息,需要在 provider 中注册他,或者基于他衍生你的自定义异常处理器。 #### 发送异常报告 你的系统出现异常时,你无法及时了解。借助这个扩展,你可以将异常报告发送给指定的邮箱,或者即时聊天平台,如:微信、QQ、钉钉等。 1. 当你安装完 `think-msg` 扩展后,你需要在 `config/msg.php` 文件中配置好你的参数,他就能在你的系统中运行起来,帮你接管异常消息的通知。不需要你改动任何现有的业务逻辑代码。 2. 异常报告的发送默认是异步的,当然他需要你运行消息发送队列任务。`php think queue:listen --queue=think-msg:msg_push` #### 相同异常间隔通知 扩展使用异常类名、异常代码、相对文件路径和行号生成异常指纹。异常消息不参与指纹计算,因此消息中的订单号、用户 ID 等动态业务数据不会导致同类异常重复通知。 ```php // config/msg.php 'exception_report' => [ // 同类异常每 30 分钟最多通知一次;设置为 0 表示关闭间隔限制 'interval' => 1800, // 对应 config/cache.php 中的 Redis store 'redis_store' => 'redis', 'key_prefix' => 'think-msg:exception:', // Redis 不可用时仍发送通知,避免漏报 'fail_open' => true, ], ``` 间隔从上一次成功取得通知资格时开始计算,期间重复发生的异常不会刷新间隔。多个进程并发上报同类异常时,Redis 原子操作保证只有一个进程入队通知。 #### 发送普通消息 我们还支持发送普通消息,可选异步或同步发送。 ```php $msg = \think\msg\msg\TextMsg::build()->setContent('你好,我是小助手'); // 同步发送 \think\msg\facade\Msg::send($msg); // 异步发送 \think\msg\facade\Msg::asyncSend($msg); ``` ## 支持的平台 - [ ] 钉钉 - [x] 飞书 - [ ] 微信 - [ ] QQ - [ ] 邮件 - [ ] 短信