Symfony Bundle SMS sending service

2.1.5 2017-03-29 06:44 UTC

This package is auto-updated.

Last update: 2024-06-26 03:58:53 UTC



Latest Stable Version Total Downloads Latest Unstable Version License

Monthly Downloads Daily Downloads

This Symfony bundle provides basic service for sending short messages. This bundle does not provide you any finished implementation for communicating the SMS gateway. To use it you have use some transport implementation or implement a transport on your own. See usage section for known implementations


Current features

  • Service and configurable transports
  • Ability to disable delivery via config for testing purposes
  • Ability to force redirect messages for testing purposes
  • Profiling via Sf2 Toolbar
  • Spooling and delayed sending

Planned features

  • Bulk sending


This bunde could be installed via Composer

composer require scaytrase/symfony-sms-delivery-bundle:~2.0


update your kernel bundle requirements as follows:

$bundles = array(
    new ScayTrase\SmsDeliveryBundle\SmsDeliveryBundle(),


Below is the configuration example and their default values

    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


To use this interface you must create a message class implementing ShortMessageInterface and create the implementation of the TransportInterface that delivers your message to end point sms gateway. You can refer my WebSMS gateway implementation as a reference.


class MyMessage implements ShortMessageInterface { /*...*/ }

class SmsController extends Controller {

  public function sendSmsAction()
    $message = new MyMessage('5552368','Help!')
    $sender = $this->get('sms_delivery.sender');
    $result = $sender->flush();
    return new Response('Delivery '. $result ? 'successful' : 'failed');

Standalone usage

Despite of the fact that this library is designed as Symfony bundle it could be used as standalone library for sending short messages. You should just instantiate sender service on your own.

    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