asseco-voice/laravel-eloquent-event-broadcaster

Laravel eloquent events broadcasting
7,328
Install
composer require asseco-voice/laravel-eloquent-event-broadcaster
Latest Version:v2.1.0
PHP:^8.1
License:MIT
Last Updated:Dec 3, 2024
Links: GitHub  ·  Packagist
Maintainer: Norgul

Broadcast Eloquent events

By default, Laravel Eloquent events are dispatched internally. This package enables the events to be dispatched to an event bus instead.

Installation

Require the package with composer require asseco-voice/laravel-eloquent-event-broadcaster. Service provider for Laravel will be installed automatically.

Using STOMP as a queue driver will support the communication between multiple Laravel services because it will be dispatching events with raw data so that it doesn't break on the other side.

This is completely optional however. If you're not using Laravel for microservices, your data will be serialized the standard Laravel way.

Usage

Make the model use a BroadcastsEloquentEvents and created, updated, deleted and restored events will be automatically dispatched to a eloquent::model_events queue.

Raw data being sent consists of:

  • payload key containing original model serialized to array.
  • Let your model implement AppendsData interface to append additional data to payload.
  • Changes (_changes) array holding old/new values and type/ID of entity that changed the model. Used for auditing purposes (can be disabled through config).
  • Headers consisting of:
    • service - lowercase snake app name
    • model - full model namespace and model name
    • action - which action was performed on the model (pulled from registered actions which can be appended or modified in the config)
  • Let your model implement AppendsHeaders interface to append additional headers.

You can tweak the configuration publishing it with:

php artisan vendor:publish --tag=asseco-broadcaster-config

Related Packages

gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444