* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Notifier\Channel; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\Notification\Notification; use Symfony\Component\Notifier\Notification\SmsNotificationInterface; use Symfony\Component\Notifier\Recipient\RecipientInterface; use Symfony\Component\Notifier\Recipient\SmsRecipientInterface; /** * @author Fabien Potencier */ class SmsChannel extends AbstractChannel { /** * @param SmsRecipientInterface $recipient */ public function notify(Notification $notification, RecipientInterface $recipient, ?string $transportName = null): void { $message = null; if ($notification instanceof SmsNotificationInterface) { $message = $notification->asSmsMessage($recipient, $transportName); } $message ??= SmsMessage::fromNotification($notification, $recipient); if (null !== $transportName) { $message->transport($transportName); } if (null === $this->bus) { $this->transport->send($message); } else { $this->bus->dispatch($message); } } public function supports(Notification $notification, RecipientInterface $recipient): bool { return $recipient instanceof SmsRecipientInterface; } }