escolalms/templates-sms

为sms设计的Escola无头LMS模板

0.1.10 2024-02-14 14:04 UTC

This package is auto-updated.

Last update: 2024-09-24 10:18:00 UTC


README

codecov Tests PHPUnit in environments downloads downloads downloads

它做什么

这是一个用于sms通知的包,具有可编辑的模板(用于重要用户相关事件)。此包支持通过twilio发送sms。

安装

  • composer require escolalms/templates-sms
  • php artisan db:seed --class="EscolaLms\Templates-SMS\Database\Seeders\TemplateSmsSeeder"

配置

您可以通过.env文件中的密钥来配置Twilio的连接

  • TWILIO_SID - twilio SID唯一密钥
  • TWILIO_TOKEN - twilio认证令牌
  • TWILIO_FROM - twilio电话号码
  • TWILIO_SSL_VERIFY - twilio ssl验证

您还可以在SMS_DRIVER中更改默认驱动程序

示例

发送SMS

使用Sms外观发送短信

Sms::driver('twilio')->send('123456789', 'SMS message');

Sms::send('123456789', 'SMS message');

自定义驱动程序

您可以定义自己的发送sms的驱动程序。该驱动程序必须实现接口\EscolaLms\TemplatesSms\Drivers\Contracts\SmsDriver

interface SmsDriver
{
    public function send(string $to, string $content, array $mediaUrls = [], array $params = []): bool;
}

示例自定义驱动程序

class CustomDriver implements \EscolaLms\TemplatesSms\Drivers\Contracts\SmsDriver
{
    public function send(string $to, string $content, array $mediaUrls = [], $params = []): bool
    {
        // Implement send() method.
    }
}

注册新的驱动程序,我们将会做以下操作

Sms::extend('custom', function($app) {
    return new CustomDriver($app);
});

测试

运行./vendor/bin/phpunit来运行测试。请参阅tests文件夹,作为文档附录的良好起点。

codecov Tests PHPUnit in environments

此包有一个用于测试的外观。Sms外观的fake方法允许您轻松模拟sms驱动程序。

public function testSms() {
    Sms::fake();
    ...
    $service->sendSms($phone1);
    ...
    Sms::assertSent($phone1);
    Sms::assertNotSent($phone2);
}
public function testSms() {
    Sms::fake();
    ...
    Sms::assertSent($phone1, fn($sms) => $sms->content === 'Sms message');
}