Symfony получить параметры из конфигурационных файлов в контроллерах - PullRequest
2 голосов
/ 02 мая 2020

Я использую Symfony 4.4 с swiftmailer .

У меня есть эта конфигурация в dev/swiftmailer.php

$container->loadFromExtension
(
   'swiftmailer',
    [
       'delivery_addresses' =>
            [
                'test@gmail.com',
            ],
        'url' => $mailHostname,
        'port' => $mailPort
    ]
);

Но я не могу получить информацию о настройках от моего контроллера:

public function XController(ContainerBagInterface $containerBag)
{
$containerBag->has("swiftmailer.mailer.default.delivery_addresses"); //this return true;
$containerBag->has("swiftmailer.mailer.default.url"); //this return false;

Почему второе утверждение возвращает false, и значение не устанавливается в файле конфигурации?

1 Ответ

1 голос
/ 02 мая 2020

Параметр URL содержит всю конфигурацию SwiftMailer с использованием формата URL, подобного DSN. После того, как конструктор использовал его для настройки вашего экземпляра почтовой программы, это значение не устанавливается, чтобы избежать проблем с безопасностью и раскрыть ваш пароль.

Из-за имени переменной $mailHostname, я думаю, вы должны использовать хост параметр вместо url.


$container->loadFromExtension
(
   'swiftmailer',
    [
       'delivery_addresses' =>
            [
                'test@gmail.com',
            ],
        'host' => $mailHostname,
        'port' => $mailPort
    ]
);

Я проверил его, и вот мой результат:

public function XController(ContainerBagInterface $containerBag)
{
$containerBag->has("swiftmailer.mailer.default.delivery_addresses"); //this returns true;
$containerBag->has("swiftmailer.mailer.default.url"); //this always returns false;
$containerBag->has("swiftmailer.mailer.default.transport.smtp.host"); //but this returns true now;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...