Helper to allow nuwber/rabbitevents to work with protobuf
- Allow to publish/listen protobuf messages using nuwber/rabbit-events easily.
You can require the last version of the package using composer
composer require softonic/laravel-protobuf-events
First you need to configure the nuwber/rabbit-events package to be able to use the package.
In the RabbitEventsServiceProvider::boot register the listeners that you want using the ExternalEvents::decorateListener method.
/**
* Register any events for your application.
*/
public function boot(): void
{
$this->listen = [
'my.routing.key' => [
ExternalEvents::decorateListener(MyListener::class),
],
];
parent::boot();
}
The listener needs a method called handle that will receive the message and the routing key.
class MyListener
{
public function handle(ProtobufExampleMessage $event): void
{
// ...
}
}
To publish a message, you need to use the ExternalEvents::publish method.
ExternalEvents::publish(
(new ProtobufExampleMessage)
->setName('My name')
->setAge(10)
);
Sometimes you need to use the package in a different way than the default. For example, you can use the package to decode a message from a string. In that case, you are able to decode the message using the ExternalEvents::decode method.
$message = ExternalEvents::decode(
ProtobufExampleMessage::class,
'\n My name\n 10\n' // The message is a string with the protobuf message
);
softonic/laravel-protobuf-events
has a PHPUnit test suite, and a coding style compliance test suite using PHP CS Fixer.
To run the tests, run the following command from the project folder.
$ make tests
To open a terminal in the dev environment:
$ make debug
The Apache 2.0 license. Please see LICENSE for more information.