ШИНА СОБЫТИЙ 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 - Максим Масюкевич


















