Класс Notifier
Класс Notifier предоставляет единый интерфейс
для отправки уведомлений через разные каналы связи.
Метод send принимает объект
Notification и получателя
Recipient. Каналы доставки определяются
транспортами, настроенными в конфигурации приложения.
Уведомление можно отправить сразу в несколько каналов
или выбрать конкретный.
Синтаксис
$notifier->send(Notification $notification, Recipient ...$recipients)
Пример
Давайте отправим простое уведомление на email получателя:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Notifier\Notification\Notification;
use Symfony\Component\Notifier\NotifierInterface;
use Symfony\Component\Notifier\Recipient\Recipient;
use Symfony\Component\Routing\Attribute\Route;
class NotifyController extends AbstractController
{
#[Route('/notify', name: 'notify_index')]
public function index(NotifierInterface $notifier): Response
{
$notification = new Notification('hello');
$recipient = new Recipient('user@example.com');
$notifier->send($notification, $recipient);
return new Response('sent');
}
}
?>
Результат выполнения кода:
sent
Пример
Давайте зададим тему и важность уведомления, а также отправим его нескольким получателям:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Notifier\Notification\Notification;
use Symfony\Component\Notifier\NotifierInterface;
use Symfony\Component\Notifier\Recipient\Recipient;
use Symfony\Component\Routing\Attribute\Route;
class NotifyController extends AbstractController
{
#[Route('/notify-users', name: 'notify_users')]
public function users(NotifierInterface $notifier): Response
{
$notification = new Notification('article');
$notification->subject('abcde');
$notification->importance(Notification::IMPORTANCE_HIGH);
$recipient1 = new Recipient('user1@example.com');
$recipient2 = new Recipient('user2@example.com');
$notifier->send($notification, $recipient1, $recipient2);
return new Response('sent');
}
}
?>
Результат выполнения кода:
sent
Смотрите также
-
класс
Notification,
который представляет объект уведомления -
метод
send,
который отправляет уведомление получателям -
класс
Recipient,
который задаёт получателя уведомления -
метод
channels,
который задаёт каналы доставки уведомления