Skip to content

Yii 2 behavior to automatically publish updates to the Mercure hub

License

Notifications You must be signed in to change notification settings

bizley/mercure-behavior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mercure-behavior

Latest Stable Version Total Downloads License

Yii 2 Mercure behavior

This package provides Yii 2 behavior to automatically publish updates to the Mercure hub when resource is being modified.
The purpose of this behavior is to equip Yii application with the same Mercure functionality as given by API Platform.

What is Mercure?

Quoting dunglas/mercure:

Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way. It is especially useful to publish real-time updates of resources served through web APIs, to reactive web and mobile apps.

See the linked repository to find out more about Mercure. There are also instructions how to set up the server and the client to establish connection using Mercure protocol.

Installation

Add the package to your composer.json:

{
    "require": {
        "bizley/mercure-behavior": "^1.0"
    }
}

and run composer update or alternatively run composer require bizley/mercure-behavior:^1.0

You will of course need Mercure Hub as well. Refer to dunglas/mercure for the instructions how to get one (I recommend using Docker image).

Usage

Add this behavior to the resource object you want to be subject of Mercure updates (usually it's an Active Record instance).

use \bizley\yii2\behaviors\mercure\MercureBehavior;

public function behaviors()
{
    return [
        MercureBehavior::class,
    ];
}

Resource object must implement \bizley\yii2\behaviors\mercure\MercureableInterface.
By default MercureBehavior will dispatch update to Mercure Hub in JSON format after the resource has been successfully created, updated, or deleted, using the Mercure publisher component registered under the 'publisher' name.

You can customize the configuration according to your needs, for example:

public function behaviors()
{
    return [
        [
            'class' => MercureBehavior::class,
            'publisher' => \bizley\yii2\mercure\Publisher::class,
            'format' => \yii\web\Response::FORMAT_XML
        ]
    ];
}

Publishing the updates

The behavior is using yii2-mercure package for publishing the updates.
Please follow the repository link to learn how to configure it properly.

About

Yii 2 behavior to automatically publish updates to the Mercure hub

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages