2017 © Pedro Peláez
 

library smsender

Library for sending SMS

image

rm/smsender

Library for sending SMS

  • Friday, May 11, 2018
  • by romanmatyus
  • Repository
  • 1 Watchers
  • 0 Stars
  • 39 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

RM\SMSender

Build Status Code Quality Code Coverage Latest Stable Version Latest Unstable Version License, (*1)

Component for sending SMS through service EuroSMS.sk for Nette., (*2)

Library is possible use too without Nette., (*3)

Installation

$ composer require rm/smsender

Minimal example

Pure PHP

$message = new RM\SMSender\Message;
$message->setFrom('Example.com')
    ->setTo('+421900123456')
    ->setText('SMS text');
try {
    $smsender = new RM\SMSender\EuroSms\Sender([
        'id' => 'API-id',
        'key' => 'API-key',
    ]);
    $smsender->send($message);
} catch (RM\SMSender\Exception $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Nette

config.neon, (*4)

extensions:
    smsender: RM\SMSender\DI\SMSenderExtension

smsender:
    config: [
        id: API-id
        key: API-key
    ]
namespace App;

use Nette\Application\UI\Presenter;
use RM;

class SmsPresenter extends Presenter
{
    /** @var RM\SMSender\IMessageFactory @inject */
    public $messageFactory;

    /** @var RM\SMSender\ISender @inject */
    public $SMSender;

    protected function startup()
    {
        parent::startup();
        $this->SMSender->onBeforeSend[] = function ($message) {
            $message->setText($message->getText() . ' -- Example.com');
        };
        $this->SMSender->onSuccess[] = function () {
            $this->flashMessage('SMS has been sent.', 'success');
        };
        $this->SMSender->onError[] = function () {
            $this->flashMessage('Sending SMS failed.', 'warning');
        };
    }

    function actionSendSms($to, $text)
    {
        $message = $this->messageFactory->create();
        $message->setFrom('Example.com')
            ->setTo($to)
            ->setText($text);
        try {
            $this->SMSender->send($message);
        } catch (RM\SMSender\Exception $e) {}
    }
}

Full feature configuration

config.neon, (*5)

extensions:
    smsender: RM\SMSender\DI\SMSenderExtension

smsender:
    config: [
        id: API-id
        key: API-key
    ]
    setDebugMode: TRUE
    senderClass: RM\SMSender\EuroSms\Sender
    messageClass: RM\SMSender\EuroSms\Message
    messageFactoryClass: RM\SMSender\MessageFactory
    message:
        setFrom: Example.com
        signature: ' -- Example.com'

The Versions