工作分享 · 2025年11月10日

最近对phpyun人才系统开发了第三方阿里云短信插件API总结了一些心得分享给各位同行大牛,少走弯路

默认的原始phpyun人才系统使用的是自研的云短信处理方案,用户购买系统后默认只能使用他们的短信服务,用户不得不在一定程度上忍受速度慢,扩展性差,价格高,自由度低等缺点!应用户需求开发了针对阿里云短信的服务api,我在处理此次方案中保留了原始的通讯通道即不影响原始的短信平台使用,在此增加了阿里云短信平台,双链路自由切换。
基于阿里云短信API技术文档规范(地址:https://api.aliyun.com/document/Dysmsapi/2017-05-25/CreateSmsSign?spm=5176.25163407.overview-index-9c3d4_4cfbe_0.13.774d2ec8WurBRT)

一、技术堆栈概览

  1. 后端核心技术栈
    -设计模式 :MVC架构(Model-View-Controller)
    -缓存策略 :文件缓存(phpyun人才系统路径data/config.php作为配置缓存层)
  2. 第三方服务集成
    -SMS服务提供商 :阿里云短信服务(Aliyun SMS Service)
    -API集成方式 :自定义封装SDK(aliyunsms.class.php)官方自带
    -HTTP通信 :CURL扩展(处理API请求)
  3. 开发范式
    面向对象编程 (OOP):基于类的封装设计
    配置驱动开发 (Configuration-driven Development)
    低耦合架构 :模块化设计,配置与业务逻辑分离

二、核心架构组件分析

  1. 配置管理子系统
  • 配置存储层 : phpyun_admin_config 表(键值对存储模式)
  • 配置键 : sy_aliyun_accesskey 、 sy_aliyun_accesssecret 、 sy_aliyun_signname 等
  • 缓存转换层 : config_cache 方法(数据库→缓存文件转换)
  • 配置访问层 :全局 $config 数组(应用运行时配置获取)
  1. 短信发送核心组件
  • 业务模型层 : notice_model 类(短信业务逻辑封装)
  • 服务封装层 : aliyun_sendsms 类(阿里云API封装)
  • 模板管理机制 : sy_aliyun_template_* 配置项(动态模板选择)
  • 发送策略 :条件判断+模板匹配+参数组装的发送链
    -3. 数据持久化机制
  • 短信日志表 : moblie_msg (操作审计与状态追踪)
  • 错误日志系统 : addErrorLog 方法(异常捕获与记录)
  • 配置自动创建 :后台保存配置时的自动建表建字段机制 三、完整工作流程详解
    -1. 配置初始化流程(Configuration Initialization Flow)
    -2. 配置持久化 :后台界面表单提交配置数据
    -3. 配置保存 :调用 setConfig 或 upInfo 方法将配置写入 phpyun_admin_config 表
    -4. 缓存生成 :触发 makeConfig 或 config_cache 方法生成配置缓存文件
    -5. 配置加载 :应用初始化时从缓存文件加载配置到全局 $config 数组