mildberry/notifier

Library for send user notifications by different transports

v0.0.3 2016-10-03 10:16 UTC

This package is not auto-updated.

Last update: 2024-11-09 20:17:48 UTC


README

Library for send user notifications by different transports

SensioLabsInsight Build Status codecov

Install

$ composer require mildberry/notifier

Usage

<?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

use Mildberry\Notifier\Interfaces\SmsNotifyInterface;
use Mildberry\Notifier\Notifier;
use Mildberry\Notifier\Notify\Notify;
use Mildberry\Notifier\Transport\VarDumpTransport;

include 'vendor/autoload.php';

class ActivationSms extends Notify implements SmsNotifyInterface
{
    public function __construct($phone, $code)
    {
        $this
            ->setRecipient($phone)
            ->setBody('Your activation code is '.$code)
        ;
    }
}

class RegistrationCompleteSms extends Notify implements SmsNotifyInterface
{
    public function __construct($phone)
    {
        $this
            ->setRecipient($phone)
            ->setBody('Congratulations registration is completed')
        ;
    }
}

$notifier = new Notifier();
$notifier->setNotifyTransport(SmsNotifyInterface::class, (new VarDumpTransport()));

// ... registration process

$notifier->send(new ActivationSms('79136703311', rand(1, 9999)));

// ... registration complete

$notifier->send(new RegistrationCompleteSms('79136703311'));

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