请问如何基于yii2优雅的进行短信发送? [ 2.0 版本 ]
请大家分享下解决方案或思路。谢谢。
需求大致如下:
- 希望短信服务可以任意切换(多个短信api)
- 数据库中建立一个短信发送判断表,判断某个action执行了不同的结果,从而判断是否发送短信和发送那个模板的短信.(感觉这里和RBAC很像,不知道是不是可以扩展下RBAC,实现。比如有某个角色具备短信发送权限,然后bizrule里设置方法执行的不同结果返回不同的内容)
- 数据库中建立表短信模板.调用发送短信时,提供模板ID,参数。进行发送。
我是php小白,根据我实际的业务需求,个人希望能够实现的最终效果为。
- 队列(发送短信记录,目标ID,包含是否成功字段、模板ID、序列化的参数、created_at、create_by)
- 服务商(并行可使用的短信服务商api的信息:用户密码key等)
- linux下的定时任务,每秒执行yii console中的某个action。
- 某队列中的目标ID连续错误3次,换一个短信服务商的api继续发送
我大概能想到,
- 接口方式实现短信发送的具体功能,每个短信服务商部分继承接口实现各自的发送功能。
- linux的定时 很好实现
- yii console 很好实现
- 自动切换短信服务商应该不难实现
但是对于何时检查 某个action执行后是否发送短信等等没有方向。 难道每个controller中都用beforeAction、afterAction
来检查? 或者自己写一个基类的BaseController 所有的业务逻辑Controller都继承这个? 然后在基类的beforeAction、afterAction
来检查短信发送与否,和具体发送什么? 请问有什么优雅的方式实现这部分内容嘛?
谢谢大家了。 本人php小白,回答内容不限于controller,比如DI等等方式,还请各位大神多多分享,谢谢!!
共 2 个回答
-
Hi @xjdata
你看看这个扩展 http://www.yiichina.com/extension/360 应该能满足你的需求,只要自己实现一下发送接口就可以了。
xjdata
注册时间:2011-12-07
最后登录:2024-05-05
在线时长:112小时38分
最后登录:2024-05-05
在线时长:112小时38分
- 粉丝23
- 金钱14169
- 威望75
- 积分16039