2017 © Pedro Peláez
 

symfony-bundle mq-notification-bundle

Send/receive notifications using AMQP and Symfony event dispatcher

image

fintem/mq-notification-bundle

Send/receive notifications using AMQP and Symfony event dispatcher

  • Wednesday, July 18, 2018
  • by fintem
  • Repository
  • 2 Watchers
  • 1 Stars
  • 485 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 11 Versions
  • 13 % Grown

The README.md

MQNotificationBundle Build Status Coverage Status

Installation

Download the bundle and dependencies

$ composer require fintem/mq-notification-bundle

Enable the bundle by adding it to the list of registered bundles

<?php
// ...
        $bundles = [
            // ...
            new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
            new Fintem\MQNotificationBundle\MQNotificationBundle(),
        ];

// ...
}

Configuration

Add the old_sound_rabbit_mq section in your configuration file and describe connection. More info here.

MQNotificationBundle config:

mq_notification:
    mq_connection_name: default # connection name described under old_sound_rabbit_mq
    service_name: your_app_name # custom your application name

Usage

Dispatch event to push notification using symfony event-dispatcher

<?php

use Fintem\MQNotificationBundle\Event\NotifyEvent;

$notifyOnTerminate = false; // push notification on kernel/console terminate/exception
$event = new NotifyEvent('test_message', ['some' => 'data'], $notifyOnTerminate);
$this->dispatcher->dispatch(NotifyEvent::NAME, $event);

Run a consumer on service or application where you want to get notification

$ app/console rabbitmq:consumer notification

When a consumer receives notification, it dispatch two NotificationReceivedEvent events in order:

  • notification_received
  • notification_received.message_name e.g. notification_received.user_created
Create a listener/subscriber to listen those events
<?php

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Fintem\MQNotificationBundle\Event\NotificationReceivedEvent;

class NotificationSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            'notification_received' => ['onNotificationReceived', 0],
            'notification_received.user_created' => ['onUserCreated', 0],
        ];
    }

    public function onNotificationReceived(NotificationReceivedEvent $event)
    {
    }

    public function onUserCreated(NotificationReceivedEvent $event)
    {
        // $user = $event->getData();
    }
}
Register listener/subscriber in service container and tag them with the mq_notification.event_listener and mq_notification.event_subscriber tags

The Versions

18/07 2018

dev-master

9999999-dev http://www.fintem.lt

Send/receive notifications using AMQP and Symfony event dispatcher

  Sources   Download

MIT

The Requires

 

The Development Requires

event notification microservices amqp

18/07 2018

1.3.0

1.3.0.0 http://www.fintem.lt

Send/receive notifications using AMQP and Symfony event dispatcher

  Sources   Download

MIT

The Requires

 

The Development Requires

event notification microservices amqp

18/04 2018

1.2.0

1.2.0.0 http://www.fintem.lt

Send/receive notifications using AMQP and Symfony event dispatcher

  Sources   Download

MIT

The Requires

 

The Development Requires

event notification microservices amqp

18/04 2018

dev-travis

dev-travis http://www.fintem.lt

Send/receive notifications using AMQP and Symfony event dispatcher

  Sources   Download

MIT

The Requires

 

The Development Requires

event notification microservices amqp

18/04 2018
18/04 2018

dev-test-autoloading

dev-test-autoloading http://www.fintem.lt

Send/receive notifications using AMQP and Symfony event dispatcher

  Sources   Download

MIT

The Requires

 

The Development Requires

event notification microservices amqp

26/10 2017
25/10 2017