2015-05-31 18:31:19 7642次浏览 2条回答 0 悬赏 100 金钱

请大家分享下解决方案或思路。谢谢。

需求大致如下:

  1. 希望短信服务可以任意切换(多个短信api)
  2. 数据库中建立一个短信发送判断表,判断某个action执行了不同的结果,从而判断是否发送短信和发送那个模板的短信.(感觉这里和RBAC很像,不知道是不是可以扩展下RBAC,实现。比如有某个角色具备短信发送权限,然后bizrule里设置方法执行的不同结果返回不同的内容)
  3. 数据库中建立表短信模板.调用发送短信时,提供模板ID,参数。进行发送。

我是php小白,根据我实际的业务需求,个人希望能够实现的最终效果为。

  1. 队列(发送短信记录,目标ID,包含是否成功字段、模板ID、序列化的参数、created_at、create_by)
  2. 服务商(并行可使用的短信服务商api的信息:用户密码key等)
  3. linux下的定时任务,每秒执行yii console中的某个action。
  4. 某队列中的目标ID连续错误3次,换一个短信服务商的api继续发送

我大概能想到,

  1. 接口方式实现短信发送的具体功能,每个短信服务商部分继承接口实现各自的发送功能。
  2. linux的定时 很好实现
  3. yii console 很好实现
  4. 自动切换短信服务商应该不难实现

但是对于何时检查 某个action执行后是否发送短信等等没有方向。 难道每个controller中都用beforeAction、afterAction来检查? 或者自己写一个基类的BaseController 所有的业务逻辑Controller都继承这个? 然后在基类的beforeAction、afterAction来检查短信发送与否,和具体发送什么? 请问有什么优雅的方式实现这部分内容嘛?

谢谢大家了。 本人php小白,回答内容不限于controller,比如DI等等方式,还请各位大神多多分享,谢谢!!

您需要登录后才可以回答。登录 | 立即注册
xjdata
CEO

xjdata

注册时间:2011-12-07
最后登录:2021-07-09
在线时长:112小时28分
  • 粉丝23
  • 金钱14169
  • 威望75
  • 积分16039

热门问题