Skip to content

Library for send user notifications by different transports (sms, email, push)

License

Notifications You must be signed in to change notification settings

mildberry/notifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notifier

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

About

Library for send user notifications by different transports (sms, email, push)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages