escolalms / templates-sms
为sms设计的Escola无头LMS模板
0.1.10
2024-02-14 14:04 UTC
Requires
- php: >=7.4
- escolalms/core: ^1.2.2
- escolalms/settings: ^0.1.2
- escolalms/templates: ^0
- laravel/framework: >=8.0
- twilio/sdk: ^6.42
- tzsk/sms: 6.0.0
Requires (Dev)
- escolalms/auth: ^0
- escolalms/cart: ^0
- escolalms/consultations: ^0
- escolalms/courses: ^0.4
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^9.0
README
它做什么
这是一个用于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文件夹,作为文档附录的良好起点。
此包有一个用于测试的外观。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'); }