Skip to content

php-solution/notification-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notification component

Notification component helps developer to create functionality for send notification system.

Concept

Parts of logic:

  • Context
  • Manager
  • Extension
  • Type
  • Rule
  • Notifier

Main Flow:

  1. Client create Context and set some parameter for notification, specify Type of notification(string name or object) and send this info to Manager
$type = new NotificationType();
$context = new Context(['parameter' => 'parameter value']);
$notificationManager->notifyType($type, $context);

or

$context = new Context(['parameter' => 'parameter value']);
$notificationManager->notifyType(NotificationType::getName(), $context);
  1. Manager prepare Type and Context via Extension(if Extension is specified for Manager)
  2. Type build Rule/Rules(some simple info for Notifier)
  3. Notifier accept Rule(parameters) and send real notification. For example: Email Notifier accept parameters(Rule) for email sending(from, to, cc,text) and send via smtp mail

Manager

This is a service for send notification, has 2 public methods for send notification:

  • notify(string $name, Context $context = null) - will get Type from TypeRegistry
  • notifyType(TypeInterface $type, Context $context = null) - use accepted Type

Extension

Implements functionality for prepare Type, Context info before build Rules

Context

Some value object of parameters for Type

Type

Rule builder

Rule

Some value object of parameters for Notifier

Notifier

Implements functionality for real notification sending

Installing

  1. Add to your composer.json
    "require": {
        ...
        "php-solution/notification": "dev-master",
        ...
    }    
  1. run:
    composer update php-solution/notification

Examples:

  • basic usage: link
  • use Symfony context configurator extension, for resolve context parameters link
  • use Symfony Event dispatcher extension link

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages