ШИНА СОБЫТИЙ PHP

Шина событий в PHP - это механизм, который позволяет объектам взаимодействовать без явного вызова друг друга. Вместо этого объекты отправляют сообщения в "широковещательный" канал - шину событий, которую могут прослушивать другие объекты и реагировать на эти события.

Подключить шину событий в PHP можно с помощью библиотеки php-enqueue/enqueue-dev. Например, для установки через Composer необходимо выполнить команду:

composer require php-enqueue/enqueue-dev

Пример отправки сообщения в шину событий:

use Enqueue\SimpleClient\SimpleClient; $dsn = 'amqp://guest:guest@localhost:5672'; $client = new SimpleClient($dsn); $producer = $client->createProducer(); $event = ['event_name' => 'user_registered', 'user_id' => 123]; $message = $producer->createMessage(json_encode($event)); $producer->sendEvent('my_event_bus', $message);

В этом примере мы создаем клиент для работы с шиной событий, создаем сообщение в виде JSON и отправляем его в шину событий.

Пример получения сообщения из шины событий:

use Enqueue\SimpleClient\SimpleClient; $dsn = 'amqp://guest:guest@localhost:5672'; $client = new SimpleClient($dsn); $consumer = $client->createConsumer(['queue' => 'my_queue']); $message = $consumer->receive(); $event = json_decode($message->getBody(), true); // обработка события if ($event['event_name'] === 'user_registered') { $userId = $event['user_id']; // делаем что-то с пользователем } $consumer->acknowledge($message);

В этом примере мы создаем потребителя для извлечения сообщения из шины событий, декодируем сообщение из JSON в массив и обрабатываем событие.

MONSTER PLANET: United Kingdom 【ruphp.com】

Почему я использую паттерн \

Валентин Гогичашвили — События, шины и интеграция данных в непростом мире микросервисов

Vue JS #24 Глобальная шина событий (The Event Bus)

Как создать свою шину событий и понять зачем она нужна. Event Bus JavaScript

Шина Данных

Строим Highload на PHP и Redis (Михаил Мазеин, ManyChat)

Что такое архитектура, управляемая событиями (EDA) \\ Event Driven архитектура за пять минут.

Message-based architecture , Event Sourcing, Sagas и.... php - Максим Масюкевич

Реклама
Новое
Реклама