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

Класс TransportNamesStamp

Класс TransportNamesStamp является штампом (Stamp) для конверта Envelope в компоненте Messenger. Он позволяет явно указать имена транспортов, в которые должно быть отправлено сообщение, игнорируя маршрутизацию, заданную в конфигурации. Первым параметром конструктор принимает массив имён транспортов.

Синтаксис

public function __construct(array $transportNames)

Пример

Давайте отправим сообщение в транспорт 'async', используя штамп:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Stamp\TransportNamesStamp; class MessageController extends AbstractController { public function send(MessageBusInterface $bus): Response { $bus->dispatch(new MyMessage('hello'), [ new TransportNamesStamp(['async']) ]); return new Response('sent'); } } ?>

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

"sent"

Пример

Давайте отправим сообщение сразу в несколько транспортов:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Stamp\TransportNamesStamp; class MessageController extends AbstractController { public function send(): Response { $envelope = new Envelope(new MyMessage('abcde')); $envelope = $envelope->with(new TransportNamesStamp(['async', 'sync'])); $names = $envelope->last(TransportNamesStamp::class)->getTransportNames(); return new Response(implode(', ', $names)); } } ?>

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

"async, sync"

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

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