scaytrase/symfony-sms-interface

此包已被废弃且不再维护。作者建议使用 scaytrase/symfony-sms-delivery-bundle 包。

Symfony Bundle 短信发送服务

2.1.5 2017-03-29 06:44 UTC

This package is auto-updated.

Last update: 2020-05-25 19:34:16 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Monthly Downloads Daily Downloads

此 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