Как внедрить массив параметров в сервис Symfony? - PullRequest
1 голос
/ 08 июля 2019

Я пытаюсь внедрить некоторые виды веточек в качестве шаблонов для настраиваемой почтовой службы, которая будет использоваться в качестве зависимости другой службой.

Я не понимаю, почему, но Symfony не видит параметры, которые я пытаюсь ввести, в $ parameters.

Как правильно внедрить этот массив службв качестве параметра?

Вот часть services.yaml:


parameters:
    locale: 'en'
    template: '%fos_user.registration.confirmation.template%'
    resetting: '%fos_user.resetting.email.template%'
    from_email: 'somemail@mail.com'
    confirmation: '%fos_user.registration.confirmation.from_email%'
    resetting_password: '%fos_user.resetting.email.from_email%'

services:

    user.mailer.rest:
        class: App\Mailer\RestMailer
        public: false
        parent: fos_user.mailer.twig_swift
        autoconfigure: false
        autowire: true
        arguments:
            $parameters:
              - '@template'
              - '@resetting'

Конструктор службы RestMailer:

public function __construct(\Swift_Mailer $mailer, UrlGeneratorInterface $router, \Twig_Environment $twig, array $parameters)
  {
    $this->mailer = $mailer;
    $this->router = $router;
    $this->twig = $twig;
    $this->parameters = $parameters;
  }

  public function sendConfirmationEmailMessage(UserInterface $user)
  {
    $template = $this->parameters['template']['confirmation'];
//...

Вот возвращаемая ошибка:

В строке DefinitionErrorExceptionPass.php 54:

Невозможно автоматически подключить службу «App \ Mailer \ RestMailer»: аргумент «$ parameters»> метода «__construct ()» является «массивом» с подсказкой типа,Вы должны настроить> его значение явно.

1 Ответ

0 голосов
/ 10 июля 2019

Вы уже настроили в services.yml?

Если вы хотите использовать параметры в config.yml, вам нужно настроить в services.yml использование / вызов параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...