jmpatricio / notifications by jmpatricio

Notifications package for Laravel
4
1
2
Package Data
Maintainer Username: jmpatricio
Maintainer Contact: jmpatricio@gmail.com (Joao Patricio)
Package Create Date: 2015-07-30
Package Last Update: 2015-07-31
Language: PHP
License: Apache 2
Last Refreshed: 2024-11-22 03:02:22
Package Statistics
Total Downloads: 4
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 1
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

Notifications

Laravel 4.2.x Package

This package provides an abstract layer to manage notifications (eg. email notifications) in Laravel Framework, fired by triggers. This package was developed to work with Laravel 4.2.x but it will work with 5.1 LTS.

Instalation

  1. Run composer require jmpatricio/notifications

  2. Add Jmpatricio\Notifications\NotificationsServiceProvider to your service providers in config/app.php

  3. Instalation Done.

Basic usage

Create the trigger

$notificationsManager = new \Jmpatricio\Notifications\Manager();
$trigger = $notificationsManager->getTriggerRepository()->add('user.newRegistration', 'When the user register');

Once we have the trigger instace created, we can create an action to be fired.

An action have a configuration, which depends of the notification provider.

$configuration = [
    'view'      => 'emails/newUserRegistration',
    'fromEmail' => 'noreply@mywebsite.dev',
    'fromName'  => 'Notifications',
    'toEmail'   => 'some@email.dev',
    'toName'    => 'Staff user',
    'subject'   => 'New user registered!'
];
$configuration = \Jmpatricio\Notifications\Providers\Configuration::createFromArray($configuration);

Now we have the desired configuration. Let's create the action for this trigger

$notificationsManager->getActionRepository()->add($trigger, 'email', $configuration);

At this point we already have the action configured to run every time the trigger user.newRegistration is fired.

This is an example to fire the trigger:

// Payload will be the new user object This is only an example
$payload = new stdClass();
$payload->name = 'John';

try {
    $notificationsManager->fire($trigger->slug, $payload);
} catch (\Jmpatricio\Notifications\Exceptions\ConfigurationNotValidException $e){
    echo "<pre>";
        print_r($e->getErrors());
    echo "</pre>";
}