Класс Notification
Класс Notification представляет собой объект уведомления
в компоненте Notifier фреймворка Symfony. Он инкапсулирует
содержимое сообщения, тему, важность и список каналов,
по которым уведомление должно быть доставлено. Экземпляр
класса передаётся в метод send сервиса
NotifierInterface, после чего фреймворк отправляет
уведомление через настроенные транспорты.
Первым параметром конструктора передаётся содержимое
уведомления (строка). Через цепочку методов subject,
content, importance, channels и
exception можно настроить дополнительные параметры
перед отправкой.
Синтаксис
<?php
use Symfony\Component\Notifier\Notification\Notification;
$notification = new Notification($subject, $channels, $importance);
?>
Пример
Давайте создадим простое уведомление и передадим его
в метод send сервиса NotifierInterface:
<?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\Routing\Attribute\Route;
class NotificationController extends AbstractController
{
#[Route('/notify', name: 'notification_send')]
public function send(NotifierInterface $notifier): Response
{
$notification = new Notification('article');
$notifier->send($notification);
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\Routing\Attribute\Route;
class NotificationController extends AbstractController
{
#[Route('/notify-advanced', name: 'notification_advanced')]
public function advanced(NotifierInterface $notifier): Response
{
$notification = (new Notification('hello'))
->subject('user')
->content('abcde')
->importance(Notification::IMPORTANCE_HIGH)
->channels(['email', 'chat']);
$notifier->send($notification);
return new Response('ok');
}
}
?>
Результат выполнения кода:
"ok"
Смотрите также
-
метод
content,
который задаёт содержимое уведомления -
метод
subject,
который задаёт тему уведомления -
метод
importance,
который задаёт важность уведомления -
метод
channels,
который задаёт каналы доставки уведомления