fei / notification-common
Flash Notification - Common components
Installs: 8 987
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 25
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
- doctrine/common: ~2.7.0
- fei/entities: ~1.1.0
- league/fractal: ^0.14.0
- objective-php/gateway: ^1.0.0
- zendframework/zend-validator: ^2.10
Requires (Dev)
- codeception/codeception: ^2.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- phpmd/phpmd: ^2.6
- phpro/grumphp: ^0.11.1
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^2.7
README
Table of contents
Entities
Notification
origin
is a string representing the origin of the notificationrecipient
is a string representing the recipient of the notificationevent
is a string representing the event linked to the notificationmessage
is a string indicating the messagetype
is an integer representing the type of the notification. 1 : Info, 2 : Warningstatus
is an integer representing the status of the notification. 0 : Unread, 1 : Read, 2 : AcknowledgedparentNotificationId
is an integer representing the parent notificationcontext
is a jsonaction
is a json
Android alert entity
message
is a Message (described below) indicating the message
Message (Android alert)
Android\Notification (Android alert)
Email alert entity
email
is a string representing the email recipientsubject
is a string indicating the subject of the emailcontent
is a string representing the content of the email
SMS alert entity
message
is a Message (described below) indicating the message
Message (SMS alert)
Contribution
As FEI Service, designed and made by OpCoding. The contribution workflow will involve both technical teams. Feel free to contribute, to improve features and apply patches, but keep in mind to carefully deal with pull request. Merging must be the product of complete discussions between Flash and OpCoding teams :)
Examples
You have the possibility to validate a Notification
entity with NotificationValidator class:
<?php use Fei\Service\Notification\Validator; use Fei\Service\Notification\Entity; $notificationData = [ 'origin' => 'origin', 'recipient' => 'thomas', 'event' => 'chat.message.new', 'message' => 'Example message', 'type' => 1, ]; $notification = new Notification(); $notificationValidator = new NotificationValidator(); $notificationHydrator = new NotificationHydrator(); $notification = $notificationHydrator->hydrate($notificationData, $notification); //validate returns true if your Notification instance is valid, or false in the other case $isValid = $notificationValidator->validate($notification); //getErrors() allows you to get an array of errors if there are some, or an empty array in the other case $errors = $notificationValidator->getErrors();
Notification and alert creation
<?php use Fei\Service\Notification\Entity\Alert\Email; use Fei\Service\Notification\Entity\Notification; use Fei\Service\Notification\Entity\Alert\Android\Message as AndroidMessage; use Fei\Service\Notification\Entity\Alert\Sms\Message as SmsMessage; $notification = (new Notification()) ->setMessage('Last test') ->setOrigin('test') ->setEvent('My best event') ->setType(Notification::TYPE_INFO) ->setAction(json_encode(['my.action' => 'first create'])) ->setRecipient('user'); $alert_email = (new Email()) ->setNotification($notification) ->setSubject('Email Subject') ->setContent('Email content') ->setEmail('email@provider.com'); $alert_android = (new Android()) ->setNotification($notification) ->setMessage(new AndroidMessage()) ->setRecipients(['id_device_1', 'id_device_2']) ->setDryRun(true) ->setPushNotification(['title' => 'Notif', 'body' => 'Test message']); $alert_sms = (new Sms()) ->setNotification($notification) ->setMessage(new SmsMessage()) ->setFrom('email@provider.com') ->setRecipients(['email@provider.com', 'email2@provider.com']) ->setContent("Sms de test");