Notifier
Library for send user notifications by different transports, (*1)
, (*2)
Install
``` bash
$ composer require mildberry/notifier, (*3)
## Usage
``` php
<?php
use Mildberry\Notifier\Interfaces\SmsNotifyInterface;
use Mildberry\Notifier\Notifier;
use Mildberry\Notifier\Notify\NotifyCollection;
use Mildberry\Notifier\Notify\SmsNotify;
use Mildberry\Notifier\Transport\VarDumpTransport;
include 'vendor/autoload.php';
$notifier = new Notifier();
$notifier->setNotifyTransport(SmsNotifyInterface::class, (new VarDumpTransport()));
$notifier->send(new SmsNotify('79136703311', 'Hello world'));
$collectionSms = new NotifyCollection();
$collectionSms
->push(new SmsNotify('79136703311', 'How a you?'))
->push(new SmsNotify('79136703311', 'Where are you?'));
$notifier->sendCollection($collectionSms);
Custom notify
``` php
<?php, (*4)
use Mildberry\Notifier\Interfaces\SmsNotifyInterface;
use Mildberry\Notifier\Notifier;
use Mildberry\Notifier\Notify\Notify;
use Mildberry\Notifier\Transport\VarDumpTransport;, (*5)
include 'vendor/autoload.php';, (*6)
class ActivationSms extends Notify implements SmsNotifyInterface
{
public function __construct($phone, $code)
{
$this
->setRecipient($phone)
->setBody('Your activation code is '.$code)
;
}
}, (*7)
class RegistrationCompleteSms extends Notify implements SmsNotifyInterface
{
public function __construct($phone)
{
$this
->setRecipient($phone)
->setBody('Congratulations registration is completed')
;
}
}, (*8)
$notifier = new Notifier();
$notifier->setNotifyTransport(SmsNotifyInterface::class, (new VarDumpTransport()));, (*9)
// ... registration process, (*10)
$notifier->send(new ActivationSms('79136703311', rand(1, 9999)));, (*11)
// ... registration complete, (*12)
$notifier->send(new RegistrationCompleteSms('79136703311'));
```, (*13)
TODO
- Documentation for Transports
- Documentation for Storage
- Saving externalID and save delivery state from transport
- Notify query
License
This library is under the MIT license. See the complete license in here, (*14)