Для отправки смс вы должны использовать SMS Gateway / API, например Nexmo или Twilio.Они оба имеют библиотеку PHP, в большинстве случаев вам нужно будет купить (виртуальный) номер телефона, и вы получите свои ключи API, которые необходимы при использовании библиотеки.
Так что отправка смс с помощью symfony не очень сложна, я думаю.
Предполагается, что у вас есть такой контроллер:
<?php
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class SmsController extends AbstractController
{
public function smsAction(Request $request, SmsService $smsService)
{
$fromNumber = $this->getParameter('sms_number_sender');
$toNumber = $request->query->get('recipient');
$message = $request->query->get('message')
$smsService->sendMessage($fromNumber, $toNumber, $message)
}
}
И SmsService, определенный ниже:
<?php
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class SmsService
{
// Can be any Sms client like TwilioClient for example
private $smsClient;
public function __construct(SmsClient $smsClient)
{
$this->smsClient = $smsClient;
}
public function sendSms(int $fromPhoneNumber, int $toPhoneNumber, string $messageBody)
{
$this->smsClient->sendMessage(
$int $toPhoneNumber,
[
'from' => $fromPhoneNumber,
'body' => $messageBody
]
);
}
}
Если вы используете последние версии Symfony, все новые классы автоматически регистрируются как Сервис, так что вам просто нужно добавить сервис, который вы хотите использовать в качестве параметра в вашем действии Контроллера.Если вы хотите внедрить SmsClient в конструктор вашего SmsService, вам нужно будет объявить его как сервис, если это внешняя библиотека.
Это просто пример, чтобы дать вам представление о том, как вы могли бы продолжитьзаказать отправку смс с Symfony.Это не рабочий пример.
Так TwilioClient работает с Symfony