V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lollitop
V2EX  ›  分享创造

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

  •  1
     
  •   lollitop ·
    toplan · 2015-12-22 11:06:14 +08:00 · 2757 次点击
    这是一个创建于 3292 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    5 条回复    2016-12-23 19:11:06 +08:00
    kslr
        1
    kslr  
       2015-12-22 15:20:10 +08:00
    很棒,正在使用。

    另外有个事想问下,如果我要限制一个电话号一天最多只能获取 3 次,那么我把这个功能放在哪个地方比较合适呢?
    lollitop
        2
    lollitop  
    OP
       2015-12-22 17:56:37 +08:00   ❤️ 1
    @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
        3
    aksoft  
       2015-12-22 18:31:27 +08:00
    好东西,多谢
    lollitop
        4
    lollitop  
    OP
       2015-12-24 16:24:44 +08:00
    @aksoft 多谢支持
    ydxred
        5
    ydxred  
       2016-12-23 19:11:06 +08:00
    @kslr 大神可以指导一下怎么使用吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3315 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:24 · PVG 20:24 · LAX 04:24 · JFK 07:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.