PHP code example of kakaprodo / laravel-message-broker
1. Go to this page and download the library: Download kakaprodo/laravel-message-broker library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
kakaprodo / laravel-message-broker example snippets
// Subscribe: in routes/message-broker.php
Route::make()
->subscribe($exchangeName)
->listenTo($routingKey, function (MessageData $dataMessage) {
dump($dataMessage->payload);
});
//Publish: from any file
MessageBroker::sendTo($exchangeName, $payloadMessage, $routingKey);
use Kakaprodo\MessageBroker\Facades\MessageBroker;
$exchangeName = "hello-world";
$payloadMessage = ['message' => "It's a new day"];
MessageBroker::broadcast($exchangeName, $payloadMessage);
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Routing\Route;
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Data\MessageData;
$exchangeName = "hello-world";
Route::make()->any()->subscribe($exchangeName, function (MessageData $dataMessage) {
dump($dataMessage->payload, $dataMessage->getRawPayload());
});
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Routing\Route;
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Data\MessageData;
$exchangeName = 'order-lifecycle';
$routingKey = "created";
Route::make()
->subscribe($exchangeName)
->listenTo($routingKey, function (MessageData $dataMessage) {
dump($dataMessage->payload);
});
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Data\MessageData;
class MyOrderPaidAction
{
public function handle(MessageData $dataMessage)
{
dump($dataMessage->payload);
}
}
Route::make()
->subscribe($exchangeName)
->listenTo($routingKey, MyOrderPaidAction::class);
use Kakaprodo\CustomData\CustomData;
use Kakaprodo\CustomData\Helpers\CustomActionBuilder;
use Kakaprodo\MessageBroker\Brokers\RabbitMq\Data\MessageData;
class MyOrderPaidData extends CustomData
{
protected function expectedProperties(): array
{
return [
'data_message' => $this->property(MessageData::class),
'order_number' => $this->property()->number(),
];
}
}
class MyOrderPaidAction extends CustomActionBuilder
{
public function handle(MyOrderPaidData $data)
{
dump($data->all());
}
}
Route::make()
->subscribe($exchangeName)
->listenTo($routingKey, MyOrderPaidAction::class);