РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1353 of 1361 menu

Класс InMemoryTransport

Класс InMemoryTransport реализует интерфейс TransportInterface и хранит сообщения прямо в оперативной памяти во время выполнения текущего процесса. Транспорт не сохраняет сообщения между запросами и полностью очищается после завершения процесса. Обычно используется для тестирования очередей без реального брокера, а также для синхронной обработки сообщений внутри одного запроса. Сообщения извлекаются методом get, а отправляются методом send.

Синтаксис

new InMemoryTransport()

Пример

Давайте создадим транспорт в памяти и отправим в него сообщение:

<?php namespace AppService; use SymfonyComponentMessengerTransportInMemoryTransport; use SymfonyComponentMessengerEnvelope; class MessageSender { public function send(): void { $transport = new InMemoryTransport(); $envelope = new Envelope('hello'); $transport->send($envelope); echo 'sent'; } } ?>

Результат выполнения кода:

"sent"

Пример

Давайте извлечём сообщение из транспорта методом get:

<?php namespace AppService; use SymfonyComponentMessengerTransportInMemoryTransport; use SymfonyComponentMessengerEnvelope; class MessageReceiver { public function receive(): void { $transport = new InMemoryTransport(); $transport->send(new Envelope('abcde')); $envelopes = $transport->get(); foreach ($envelopes as $envelope) { echo $envelope->getMessage(); } } } ?>

Результат выполнения кода:

"abcde"

Смотрите также

  • класс MessageBus,
    который диспатчит сообщения в шину
  • метод dispatch,
    который отправляет сообщение в шину
  • класс Envelope,
    который оборачивает сообщение и его штампы
  • метод getMessage,
    который возвращает исходное сообщение из конверта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить