rm/smsender

Library for sending SMS

v0.2.0 2020-02-24 23:46 UTC

This package is auto-updated.

Last update: 2024-12-15 09:06:28 UTC


README

Build Status Code Quality Code Coverage Latest Stable Version Latest Unstable Version License

Component for sending SMS through service EuroSMS.sk for Nette.

Library is possible use too without Nette.

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

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

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'