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

Канал sms

Канал sms в компоненте Symfony Notifier отвечает за отправку уведомлений в виде SMS-сообщений. Для работы канала необходимо настроить транспорт (DSN) в конфигурации notifier.yaml и использовать класс SmsMessage для формирования текста сообщения. Уведомление отправляется через метод send объекта Notifier, который автоматически определяет подходящий канал.

Синтаксис

use Symfony\Component\Notifier\Message\SmsMessage; $sms = new SmsMessage( phone: '+1234567890', subject: 'Текст сообщения' );

Пример

Давайте создадим уведомление с SMS-каналом и отправим его через Notifier. Для этого сначала настроим транспорт в конфигурационном файле:

framework: notifier: chatter_transports: sms: 'null://null' texter_transports: sms: '%env(SMS_DSN)%'

Теперь напишем контроллер, который отправляет SMS-сообщение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\NotifierInterface; use Symfony\Component\Routing\Attribute\Route; class SmsController extends AbstractController { #[Route('/sms', name: 'sms_send')] public function send(NotifierInterface $notifier): Response { $sms = new SmsMessage( phone: '+1234567890', subject: 'hello' ); $notifier->send($sms); return new Response('SMS sent'); } } ?>

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

"SMS sent"

Пример

Давайте отправим SMS с использованием объекта Recipient, который поддерживает канал sms. Создадим получателя и передадим его в уведомление:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\NotifierInterface; use Symfony\Component\Notifier\Recipient\Recipient; use Symfony\Component\Routing\Attribute\Route; class SmsRecipientController extends AbstractController { #[Route('/sms-recipient', name: 'sms_recipient')] public function send(NotifierInterface $notifier): Response { $recipient = new Recipient( email: 'user@example.com', phone: '+1234567890' ); $sms = new SmsMessage( phone: $recipient->getPhone(), subject: 'article' ); $notifier->send($sms, $recipient); return new Response('SMS to recipient'); } } ?>

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

"SMS to recipient"

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

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