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

Канал chat

Канал chat - это один из встроенных каналов компонента Notifier, который отвечает за отправку уведомлений в чат-сервисы. Канал указывается в методе channels класса Notification и определяет, через какой транспорт (Slack, Telegram, Mattermost и т.д.) будет доставлено сообщение. Настройка транспортов выполняется в файле config/packages/notifier.yaml в секции chatter_transports.

Синтаксис

public function channels(RecipientInterface $recipient): array { return ['chat']; }

Пример

Давайте создадим класс уведомления, которое отправляется в чат:

<?php namespace App\Notification; use Symfony\Component\Notifier\Notification\Notification; use Symfony\Component\Notifier\Recipient\RecipientInterface; class ArticleNotification extends Notification { public function __construct() { parent::__construct('article'); } public function channels(RecipientInterface $recipient): array { return ['chat']; } public function getChatMessage(RecipientInterface $recipient): string { return 'hello'; } } ?>

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

"hello"

Пример

Давайте настроим транспорт Slack и отправим уведомление через Notifier:

framework: notifier: chatter_transports: slack: dsn: '%env(SLACK_DSN)%'

Теперь отправим уведомление из контроллера:

<?php namespace App\Controller; use App\Notification\ArticleNotification; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Notifier\NotifierInterface; use Symfony\Component\Notifier\Recipient\Recipient; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(NotifierInterface $notifier): Response { $notification = new ArticleNotification(); $recipient = new Recipient('user@example.com'); $notifier->send($notification, $recipient); return new Response('sent'); } } ?>

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

sent

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

  • класс Notification,
    который представляет уведомление
  • метод channels,
    который задаёт каналы доставки
  • класс Notifier,
    который отправляет уведомления
  • метод send,
    который выполняет отправку уведомления
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить