Implement notifications system in your symfony project using Pusher API

v1.0.1 2018-03-07 10:57 UTC


A simple implementation for Pusher API that helps you integrate a notifications system in a few simple steps.


  1. composer require mrad/notifications-bundle
  2. Enable the bundle in AppKernel.php new SBC\NotificationsBundle\NotificationsBundle(),


Step 1:

First thing you need to create an account with Pusher and then in Your apps menu create a new app.

Step 2:

Add you app configuration to the app/config.yml:

# NotificationsBundle configuration
    app_id:     your_id
    app_key:    your_key
    app_secret: secret
    cluster:    cluster
    # Optional
    # Default false: work without ssl encryption
    # Set it to true to work with ssl encryption
    encrypted:  false

Of course you can find those details in your app in the dashboard.
alt text

Step 3:

Now in your view.html.twig (your client side) add this:

{# Call NotificationsBundles's assets #}
{{ notifications_assets() }}
     * This function will be triggered each time a data comes from the server
     * Make sure you call it otherwise you won't get any data
     * @param data contains your data sent from the server
    function onNotificationsPushed(data){
        console.log('data', data);

And that's it 😃, now to make sure that your client is receiving the data correctly you can test it by calling this console command:
php bin/console notifications:trigger "Your message"
If you open the browser's console you should see something like this:
alt text

Broadcast custom messages from Backend

To broadcast messages from your backend you can simply do this:

// From your controller or service
$data = array(
    'my-message' => "My custom message",
$pusher = $this->get('mrad.pusher.notificaitons');

Next Step

Now I will show how to create and save notifications in database.


This project is under the MIT license


Thanks to SlimenTN for his help in this project