yokai/messenger-bundle

This package is abandoned and no longer maintained. The author suggests using the symfony/notifier package instead.

Simplify message sending processes in a Symfony project

v1.5 2019-01-24 17:30 UTC

README

⚠️ This package is abandoned and no longer maintained. The author suggests using the symfony/notifier package instead.

Latest Stable Version Latest Unstable Version Total Downloads License

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight

Simplify message sending processes in a Symfony2 project.

Imagine that your application sends emails, triggers UI notifications, sends SMS. You are using several libraries to do it. And if you did not factorize your code, you will have bunch of copy paste in every place you are sending something.

Worst, if you was expecting to send an email some day, you may send also an SMS tomorrow. If that happen, you will need to rewrite your code...

This bundle is trying to help with all these problems, providing a simple way to configure a distribute these messages.

Principles

Message

A message represent the fact that your application is sending something.

Creating a message is as easy as creating a service of class Yokai\MessengerBundle\Message with at least 1 yokai_messenger.message tag, for each tag you specify the channel on which the message should be distributed.

You can also register it using this bundle configuration.

Recipient

A recipient represent the information about the target of your message.

Every channel is free to support only certain types of recipient (mostly by checking interfaces).

Channel

A channel represent a way to distribute messages.

This bundle come with some built-in channels:

Creating a channel is as easy as creating a service that implements Yokai\MessengerBundle\Channel\ChannelInterface with the yokai_messenger.channel tag.

A channel will be asked to handle a delivery whenever a message is about to be sent.

Delivery

A delivery (Yokai\MessengerBundle\Delivery) represent the message about to be sent to a recipient for a channel. It is mainly matter of storing all the data in the same place.

Creating a delivery is an internal process, that must be done by the sender.

Sender

The sender is your entry point for sending messages.

It centralize the configuration of which messages to send over which channels.

Installation

Add the bundle as dependency with Composer

$ php composer.phar require yokai/messenger-bundle

Enable the bundle in the kernel

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
        new Yokai\MessengerBundle\YokaiMessengerBundle(),
    ];
}

Configuration

Please read the dedicated documentation.

Usage

Please read the dedicated documentation.

MIT License

License can be found here.

Authors

The bundle was originally created by Yann Eugoné.

See the list of contributors.