sdmingma/tp8-sms
Composer 安装命令:
composer require sdmingma/tp8-sms
包简介
ThinkPHP 8.0 SMS SDK - 支持阿里云、腾讯云等多平台短信验证码发送
README 文档
README
一个极简、高性能且深度适配 ThinkPHP 的短信验证码 SDK。支持阿里云、腾讯云等多平台,针对高版本 PHP 及国内开发环境进行了深度优化。
✨ 特性
- 多平台支持:预置阿里云、腾讯云驱动,支持自定义扩展。
- 全版本兼容:兼容 PHP 7.4 - PHP 8.5 以及 ThinkPHP 6.0 / 8.0+。
- 极致轻量:核心包不捆绑任何云厂商 SDK,按需安装,秒级部署。
- 原生直连:腾讯云驱动采用原生 cURL + 手动签名实现,彻底解决本地开发环境 Guzzle 代理劫持导致的
Connection refused报错。 - 现代 PHP 支持:完美适配 PHP 8.5,解决了
setAccessible和curl_close等废弃警告。 - 配置原生:完美集成 ThinkPHP 服务容器与助手函数。
📦 安装
通过 Composer 安装核心包:
composer require sdmingma/tp8-sms
按需安装驱动
根据您使用的平台,安装对应的官方 SDK:
- 阿里云:
composer require alibabacloud/dysmsapi-20170525 - 腾讯云:已内置原生 cURL 实现,无需安装官方 SDK 即可使用,更加轻量!
⚙️ 配置
1. 发布配置文件
在项目根目录下执行:
php think vendor:publish
这将在 config 目录下生成 sms.php 配置文件。
2. 配置环境变量 (.env)
为了确保最佳兼容性,请使用大写下划线格式配置。
⚠️ 重要提示:由于 ThinkPHP 的
.env解析限制,请务必将短信配置放在[WECHAT]等其他分组标签之前,且注释中不要包含括号()。
# --- 短信配置 - 全局配置 ---
SMS_DRIVER=tencent
# 腾讯云配置
SMS_TENCENT_SECRET_ID=您的SecretId
SMS_TENCENT_SECRET_KEY=您的SecretKey
SMS_TENCENT_SDK_APP_ID=您的SdkAppId
SMS_TENCENT_SIGN_NAME=您的短信签名
SMS_TENCENT_CODE_TEMPLATE=您的模板ID
# 阿里云配置
# SMS_ALIYUN_ACCESS_KEY_ID=
# SMS_ALIYUN_ACCESS_KEY_SECRET=
# SMS_ALIYUN_SIGN_NAME=
# SMS_ALIYUN_CODE_TEMPLATE=
🚀 使用方法
基础调用
使用助手函数 sms() 快速发送验证码:
// 发送验证码(使用默认驱动)
$result = sms()->sendCode('13800138000', '123456');
if ($result['success']) {
// 发送成功,返回流水号:$result['data']['serial_no']
}
切换驱动
// 临时切换到阿里云发送
sms()->driver('aliyun')->sendCode('13800138000', '123456');
发送通知短信
// 腾讯云 - 模板参数使用索引数组
sms()->send('13800138000', '模板ID', ['参数1', '参数2']);
// 阿里云 - 模板参数使用关联数组
sms()->send('13800138000', '模板ID', ['code' => '1234', 'name' => '张三']);
🛠 错误处理
SDK 会在遇到错误时抛出 ThinkSms\Exceptions\SmsException。
use ThinkSms\Exceptions\SmsException;
try {
sms()->sendCode('13800138000', '123456');
} catch (SmsException $e) {
// 错误信息
echo $e->getMessage();
// 详细错误数据(如平台返回的错误码)
print_r($e->getData());
}
🔄 扩展驱动
您可以轻松添加自己的驱动(如华为云、七牛云等):
- 创建驱动类继承
ThinkSms\Contracts\AbstractDriver。 - 实现
send()和sendCode()方法。 - 在应用初始化处调用
sms()->extend('custom', \app\sms\MyDriver::class)。
开源协议
MIT License
sdmingma/tp8-sms 适用场景与选型建议
sdmingma/tp8-sms 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 02 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「sms」 「thinkphp」 「tencent」 「aliyun」 「verification Code」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sdmingma/tp8-sms 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sdmingma/tp8-sms 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sdmingma/tp8-sms 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP package for easy integration with solvecaptcha API.
SDK for payment gateway PlatbaMobilom.sk for PHP7.0
Extensible library for building notifications and sending them via different delivery channels.
这是使用阿里云日志服务sls的thinkphp6.0日志驱动,支持函数计算
用于 thinkphp6 框架上的基于 OCI 的 Oracle 数据库驱动。thinkphp5.1 请使用 1.0 版本
ThinkPHP6分页驱动
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 30
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-01