scaytrase / symfony-sms-interface
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: 2020-05-25 19:34:16 UTC
README
此 Symfony 扩展提供发送短信的基本服务。此扩展不提供任何用于与短信网关通信的完整实现。要使用它,您需要使用某种传输实现或自行实现传输。有关已知实现,请参阅使用部分。
特性
当前特性
- 服务和可配置的传输
- 能够通过配置禁用交付,用于测试目的
- 能够强制重定向消息,用于测试目的
- 通过 Sf2 工具栏进行性能分析
- 队列和延迟发送
计划特性
- 批量发送
安装
此扩展可以通过 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