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

Метод channels класса Notification

Метод channels класса Notification возвращает массив имён каналов, через которые должно быть доставлено уведомление. Он используется системой Notifier для определения транспортов доставки: email, SMS, чата или push. По умолчанию метод возвращает пустой массив.

Синтаксис

public function channels(RecipientInterface $recipient): array

Пример

Давайте создадим класс уведомления и укажем, что оно должно отправляться через каналы 'email' и 'sms':

<?php namespace AppNotification; use SymfonyComponentNotifierNotificationNotification; use SymfonyComponentNotifierRecipientRecipientInterface; class ArticleNotification extends Notification { public function channels(RecipientInterface $recipient): array { return ['email', 'sms']; } } ?>

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

["email", "sms"]

Пример

Давайте отправим уведомление через класс Notifier и проверим, что метод channels возвращает выбранные каналы:

<?php namespace AppController; use AppNotificationArticleNotification; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentNotifierNotifierInterface; use SymfonyComponentNotifierRecipientEmailRecipient; use SymfonyComponentRoutingAttributeRoute; class NotifyController extends AbstractController { #[Route('/notify', name: 'notify_index')] public function index(NotifierInterface $notifier): Response { $notification = new ArticleNotification(); $recipient = new EmailRecipient('user@example.com'); $channels = $notification->channels($recipient); return new Response(implode(', ', $channels)); } } ?>

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

email, sms

Пример

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

<?php namespace AppNotification; use SymfonyComponentNotifierNotificationNotification; use SymfonyComponentNotifierRecipientEmailRecipient; use SymfonyComponentNotifierRecipientRecipientInterface; class ArticleNotification extends Notification { public function channels(RecipientInterface $recipient): array { if ($recipient instanceof EmailRecipient) { return ['email']; } return ['sms']; } } ?>

Результат выполнения метода для email-получателя:

["email"]

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

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