zing/laravel-sms

为Laravel提供短信通知通道。

6.4.0 2024-03-18 14:54 UTC

README

Tests Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality StyleCI Shield Code Climate FOSSA Status

Laravel Sms用于通过短信进行通知和发送消息。

感谢

非常感谢

  • JetBrains提供的优秀PhpStorm IDE,并为我提供开源许可证,以加速项目开发。

    JetBrains

要求

安装

Composer

执行以下命令以获取软件包的最新版本

composer require zing/laravel-sms

Laravel

发布配置

php artisan vendor:publish --provider "Zing\LaravelSms\SmsServiceProvider"

添加连接

此包基于overtrue/easy-sms,驱动程序是网关。

用法

通道

创建通知

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;

class Verification extends Notification implements ShouldQueue
{
    use Queueable;

    protected $code;

    /**
     * Verification constructor.
     *
     * @param $code
     */
    public function __construct($code)
    {
        $this->code = $code;
    }

    public function via()
    {
        return ['sms'];
    }

    public function toSms($notifiable)
    {
        return "验证码 {$this->code},您正在进行身份验证,打死也不要告诉别人哦!";
    }
}

为短信添加通知路由到你的可通知对象

use Illuminate\Notifications\Notifiable;

class User
{
    use Notifiable;

    public function routeNotificationForSms($notification)
    {
        return $this->phone;
    }
}

发送通知

use Illuminate\Support\Facades\Notification;

$user = new User();
// use Notifiable Trait
$user->notify(new Verification('1111'));
// use Notification Facade
Notification::send($user, new Verification('1111'));

发送到匿名可通知对象

use Illuminate\Support\Facades\Notification;
use Zing\LaravelSms\SmsNumber;
use Zing\LaravelSms\Channels\SmsChannel;

// use channel class name
Notification::route(SmsChannel::class, new SmsNumber(18188888888, 86))->notify(new Verification('1111'));
// use channel alias
Notification::route('sms', new SmsNumber(18188888888, 86))->notify(new Verification('1111'));

外观

发送消息

use Zing\LaravelSms\Facades\Sms;

// use default connection
Sms::send(18188888888, 'test message.');
// use specific connection
Sms::connection('null')->send(18188888888, 'test message.');
// or
Sms::via('null')->send(18188888888, 'test message.');

具体用法

为通知使用特定连接

注意:仅支持Zing\LaravelSms\SmsMessage

use Zing\LaravelSms\SmsMessage;

public function toSms($notifiable)
{
    return (new SmsMessage())->onConnection('log');
}

使电话号码成为可通知对象

注意:仅支持Zing\LaravelSms\SmsNumber

use Zing\LaravelSms\SmsNumber;

(new SmsNumber(18188888888))->notify(new Verification('1111'));

许可证

Laravel Sms是开源软件,受MIT许可证许可。

FOSSA Status