laravel-sms v2.0 全新重构而来。。

2015-12-22 11:06:14 +08:00
 lollitop

Laravel Sms

还记得几个月前本站上的文章Laravel-sms for L5 灵活靠谱的短信发送包吧,现在laravel-sms v2来啦,快来围观围观哈,喜欢就收藏 star ,有问题请多多提 issue 或 pr!...

1. 关于 v2

laravel-sms v2 是基于phpsms针对 laravel 框架二次封装的短信发送库。
相较于 v1 版本, v2 是使用新思路全新重构的版本,并且升级备用代理器机制为代理器均衡调度机制。

phpsms 为 laravel-sms 提供了全套的短信发送机制,而且 phpsms 也有自己的 service provider ,也就是说你完全可以在 laravel 框架下无障碍的独立使用 phpsms 。
这也是为什么使用 laravel-sms 会在项目中生成两个配置文件(phpsms.php 和 laravel-sms.php)的根本原因。

config/phpsms.php 负责配置代理器参数以及规划如何最优调度代理器(由 phpsms 提供)。
config/laravel-sms.php 则全职负责验证码发送 /验证模块的配置(由 laravel-sms 提供)。

2. why me

那么既然有了 phpsms ,为什么还需要 laravel-sms 呢?
为了更进一步提高开发效率, laravel-sms 在 phpsms 的基础上针对 laravel 框架定制好了如下功能:

特点

  1. 数据库记录 /管理短信数据及其发送情况[可选]。
  2. 支持模板短信和内容短信(由 phpsms 提供)。
  3. 短信队列(由 phpsms 提供)。
  4. 支持语音验证码(由 phpsms 提供)。
  5. 代理器均衡调度机制(由 phpsms 提供)。
  6. 集成验证码短信发送 /校验模块,从此告别重复写验证码短信发送与校验的历史。
  7. 验证码发送 /验证模块的 json API 无 session 支持。
  8. 集成如下第三方短信服务商,你也可自定义代理器(由 phpsms 提供)。

详情见此

代理器均衡调度机制

请在 config/phpsms.php 中设置代理器的均衡调度方案。
```php
'enable' => [
//被使用概率为 2/3
'Luosimao' => '20',

//被使用概率为 1/3 ,且为备用代理器
    'YunPian' => '10 backup',

    //仅为备用代理器
    'YunTongXun' => '0 backup',

];
```

调度方案解析:
如果按照以上配置,那么系统首次会尝试使用LuosimaoYunPian发送短信,且它们被使用的概率分别为2/31/3
如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPianYunTongXun,那么会依次调用直到发送成功或无备用代理器可用。
值得注意的是,如果首次尝试的是YunPian,那么备用代理器将会只会使用YunTongXun,也就是会排除使用过的代理器。

Github|文档

GIthub: laravel sms

2754 次点击
所在节点    分享创造
5 条回复
kslr
2015-12-22 15:20:10 +08:00
很棒,正在使用。

另外有个事想问下,如果我要限制一个电话号一天最多只能获取 3 次,那么我把这个功能放在哪个地方比较合适呢?
lollitop
2015-12-22 17:56:37 +08:00
@kslr 谢谢支持,我认为比较合适的是利用 Validation 来扩展一个验证方式,如:

```php
Validation::extend('must_less_3_times', function($attribute, $value, $parameters){
//验证是否少于三次
});
```

在 config/laravel-sms.php 的 rules 中新加:
```php
'rules' => [
'must_less_3_times' => 'required|zh_mobile|must_less_3_times'
]
```
aksoft
2015-12-22 18:31:27 +08:00
好东西,多谢
lollitop
2015-12-24 16:24:44 +08:00
@aksoft 多谢支持
ydxred
2016-12-23 19:11:06 +08:00
@kslr 大神可以指导一下怎么使用吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX