scaytrase / symfony-sms-delivery-bundle
Symfony Bundle SMS sending service
Installs: 34 017
Dependents: 3
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 3
Open Issues: 2
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-10-26 04:41:09 UTC
README
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
Features
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
Installation
This bunde could be installed via Composer
composer require scaytrase/symfony-sms-delivery-bundle:~2.0
app/AppKernel.php
update your kernel bundle requirements as follows:
$bundles = array( //.... new ScayTrase\SmsDeliveryBundle\SmsDeliveryBundle(), //.... );
Configuration
Below is the configuration example and their default values
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
Usage
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.
Example
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'); } }
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