scaytrase / symfony-sms-delivery-bundle
Symfony Bundle 短信发送服务
2.1.5
2017-03-29 06:44 UTC
Requires
- php: >=5.3.3
- symfony/config: ~2.3|~3.0
- symfony/dependency-injection: ~2.3|~3.0
- symfony/http-foundation: ~2.3|~3.0
- symfony/http-kernel: ~2.3|~3.0
Requires (Dev)
- phpunit/phpunit: ~5.0 <5.4 || ~4.6
- symfony/framework-bundle: ~2.3|~3.0
This package is auto-updated.
Last update: 2024-08-26 04:24:07 UTC
README
此Symfony扩展包提供发送短信的基本服务。此扩展包不提供任何用于与短信网关通信的完整实现。要使用它,您需要使用某些传输实现或自行实现传输。有关已知实现的详细信息,请参阅使用部分
特性
当前特性
- 服务和可配置的传输
- 能够通过配置禁用投递,用于测试目的
- 能够强制重定向消息,用于测试目的
- 通过Sf2 Toolbar进行性能分析
- 队列和延迟发送
计划中的特性
- 批量发送
安装
此扩展包可以通过Composer进行安装
composer require scaytrase/symfony-sms-delivery-bundle:~2.0
app/AppKernel.php
更新您的内核扩展包要求如下
$bundles = array( //.... new ScayTrase\SmsDeliveryBundle\SmsDeliveryBundle(), //.... );
配置
以下为配置示例及其默认值
sms_delivery: spool: sms_delivery.spool.instant transport: sms_delivery.dummy_sender # @id of the transport service disable_delivery: false # disable delivery overrides spool with disabled spool delivery_recipient: null # delivery recipient overrides recipient when sending
使用方法
要使用此接口,您必须创建一个实现 ShortMessageInterface
的消息类,并创建实现 TransportInterface
的实现,将您的消息发送到终点短信网关。您可以参考我的 WebSMS 网关实现作为参考。
示例
class MyMessage implements ShortMessageInterface { /*...*/ } class SmsController extends Controller { public function sendSmsAction() { $message = new MyMessage('5552368','Help!') $sender = $this->get('sms_delivery.sender'); $sender->spoolMessage($message); $result = $sender->flush(); return new Response('Delivery '. $result ? 'successful' : 'failed'); } }
独立使用
尽管这个库被设计成Symfony扩展包,但它也可以作为独立库用于发送短信。您只需自行实例化发送服务即可。
class MyProviderSmsTransport implements TransportInterface { /*...*/ } class MyMessage implements ShortMessageInterface { /*...*/ } $transport = new MyProviderSmsTransport(); $sender = new MessageDeliveryService($transport); $sender->spoolMessage(new MyMessage('Message body')); $sender->flush(); // Default InstantSpool does not actually needs flushing but you can use another spool instead