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

Команда make:message

Команда make:message создаёт класс сообщения для компонента Symfony Messenger. Сообщение - это обычный PHP-класс с данными, который можно отправить в очередь и обработать асинхронно с помощью обработчика. Команда принимает имя класса сообщения и генерирует файл в каталоге src/Message.

Синтаксис

php bin/console make:message [name]

Параметр name задаёт имя создаваемого класса сообщения. Если его не указать, команда спросит имя в интерактивном режиме.

Пример

Давайте создадим класс сообщения SendEmailMessage:

php bin/console make:message SendEmailMessage

В результате команда создаст файл сообщения:

<?php namespace App\Message; class SendEmailMessage { private string $email; public function __construct(string $email) { $this->email = $email; } public function getEmail(): string { return $this->email; } } ?>

Команда также предложит создать обработчик для этого сообщения.

Пример

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

php bin/console make:message NotifyUserMessage

Результат создания класса сообщения с полями:

<?php namespace App\Message; class NotifyUserMessage { private int $userId; private string $text; public function __construct(int $userId, string $text) { $this->userId = $userId; $this->text = $text; } public function getUserId(): int { return $this->userId; } public function getText(): string { return $this->text; } } ?>

Пример

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

<?php namespace App\Controller; use App\Message\NotifyUserMessage; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Routing\Attribute\Route; class MessageController extends AbstractController { #[Route('/notify', name: 'message_notify')] public function notify(MessageBusInterface $bus): Response { $bus->dispatch(new NotifyUserMessage(1, 'hello')); return new Response('message sent'); } } ?>

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

message sent

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

  • команда make:messenger-middleware,
    которая создаёт middleware для Messenger
  • команда messenger:consume,
    которая запускает обработку сообщений
  • команда debug:messenger,
    которая показывает обработчики сообщений
  • команда messenger:stats,
    которая выводит статистику по транспортам
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить