scaytrase/symfony-sms-delivery-bundle

Symfony Bundle 短信发送服务

2.1.5 2017-03-29 06:44 UTC

This package is auto-updated.

Last update: 2024-08-26 04:24:07 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Monthly Downloads Daily Downloads

此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