В данный момент это реализовано через прослойку на этапе конфигурации DI контейнера.
В тестовой конфигурации мы из параметров приложения дергаем значения test_notifierTo и test_notifierCC и подменяем любые адреса на те что указаны в этих переменных.
Код: Выделить всё
$container->setSingleton(NotifierInterface::class, function () use ($app) {
return YII_ENV_PROD ? new Notifier($app->params['notifierFrom']) :
new TestNotifier($app->params['notifierFrom'], $app->params['test_notifierTo'],
$app->params['test_notifierCC']);
});
Код: Выделить всё
$container->setSingleton(MailerInterface::class, function () use ($app) {
return YII_ENV_PROD ? $app->mailer : $app->testMailer;
});
Код: Выделить всё
'testMailer' => [
//...
'messageConfig' => [
'from' => ['test@email.from' => 'Тестовая рассылка'],
'to' => $params['test_notifierTo']
],
//...
],