EasySms 是安大写的一款集合了市面上几乎全部主流的渠道商的短信发送扩展包。

不过,在使用的时候,貌似并没有提供ServiceProvider.

所以在代码初始化的时候,写一大堆配置,也不方便,为此需要自己手撸一个。

先创建一个配置文件

vim config/easysms.php

里面放入你的短信配置

<?php
return [
    // HTTP 请求的超时时间(秒)
    'timeout' => 5.0,

    // 默认发送配置
    'default' => [
        // 网关调用策略,默认:顺序调用
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

        // 默认可用的发送网关
        'gateways' => [
            'yunpian',
        ],
    ],
    // 可用的网关配置
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        'yunpian' => [
            'api_key' => env('YUNPIAN_API_KEY'),
        ],
    ],
];

同时在你的 .env 文件里 写入相关的配置数值

YUNPIAN_API_KEY=XXXX

然后,创建一个ServiceProvider

php artisan make:provider EasySmsServiceProvider

修改app\Http\Providers里的boot方法

/**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton(EasySms::class, function ($app) {
            return new EasySms(config('easysms'));
        });

        $this->app->alias(EasySms::class, 'easysms');
    }

最后,在config/app.php 里的 providers 数组里增加一行

 'providers' => [
     ...
     App\Providers\EasySmsServiceProvider::class,
 ]

代码调用

sms = app('easysms');
try {
    xxx
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
   xxx
}