Notification component helps developer to create functionality for send notification system.
- Context
- Manager
- Extension
- Type
- Rule
- Notifier
- 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);
- Manager prepare Type and Context via Extension(if Extension is specified for Manager)
- Type build Rule/Rules(some simple info for Notifier)
- 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
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
Implements functionality for prepare Type, Context info before build Rules
Some value object of parameters for Type
Rule builder
Some value object of parameters for Notifier
Implements functionality for real notification sending
- Add to your composer.json
"require": {
...
"php-solution/notification": "dev-master",
...
}
- run:
composer update php-solution/notification