Я пытаюсь создать ссылку, которая отправляет пользователю токен подтверждения после регистрации в Symfony3.
Однако я получаю сообщение об устаревании следующим образом:
Пользователь устарел: служба "fos_user.mailer" является частной.
из контейнера устарела начиная с Symfony 3.2 и завершится с ошибкой
4.0. Вам следует либо сделать службу общедоступной, либо прекратить использование контейнера напрямую и использовать вместо этого внедрение зависимостей.
Вот мой контроллер:
public function resendActivationEmail($token, UserManagerInterface $userManager)
{
$user = $userManager->findUserByConfirmationToken($token);
if (is_null($user)) {return $this->redirectToRoute('fos_user_registration_register');}
$mailer = $this->get('fos_user.mailer');
$mailer->sendConfirmationEmailMessage($user);
return $this->redirectToRoute('fos_user_registration_check_email');
}
My services.yml:
services:
# default configuration for services in *this* file
_defaults:
autowire: truesubscribers, etc.
autoconfigure: true
public: false
Я посмотрел документы, там написано, что в Symfony3.4 сервисы по умолчанию являются частными. Я использую автопроводку в своем приложении, так как же получить fos_user.mailer
без предупреждений об устаревании?
Я пытался настроить общедоступные службы Fosuserbundle, не помогает:
services.yml
....
FOS\UserBundle:
public: true
Любая помощь приветствуется!