Привет! Делаю API. Есть стандартная функциональность регистрации:
1. Запрос регистрации
2. Подтверждение регистрации
Отправку писем осуществляю через сервис
SignUpConfirmTokenSender.
public function send(Email $email, string $token): void
{
$message = (new Swift_Message($this->translator->trans('Sig Up Confirmation', [], 'mail')))
->setTo($email->getValue())
->setBody($this->twig->render('mail/user/signup.html.twig', ['token' => $token]), 'text/html');
if (!$this->mailer->send($message)) {
throw new RuntimeException($this->translator->trans('Unable to send message.', [], 'error'));
}
}
И сам шаблон
{% extends 'mail.html.twig' %}
{% block body %}
<p>Password Reset Link:</p>
{% set url = url('auth.reset.reset', {'token': token}) %}
<p><a href="{{ url }}">{{ url }}</a></p>
{% endblock %}
Сложность возникла при изменении этой ссылки в письме. Можно было бы оставить и так, как сейчас, но эта ссылка ведёт на API. Ответом которого будет не красивое окно с уведомлением о подтверждении, а json строка. Так вот как лучше теперь вставлять эту ссылку?
1. Сразу в письмо
2. Вынести в конфиги параметров
3. Передавать в контроллере и далее в сервис.