Laravel: как переопределить экземпляр транспортера - PullRequest
0 голосов
/ 20 февраля 2019

Я изучаю поставщиков услуг Laravel, и для начала я пытаюсь переписать Illuminate\Mail\MailServiceProvider.

И через несколько дней я получил то, что хотел: registerSwiftMailer метод.

Что действительно привлекло мое внимание, так это следующий комментарий:

// ..., which allows us to
// override this transporter instances during app start-up if necessary.

Суть в том, что «действительно» возможно «переопределить» экземпляры транспортера при запуске приложения, если это необходимо, и как это возможносделать это, например, из контроллера?


registerSwiftMailer

    public function registerSwiftMailer()
    {
        $this->registerSwiftTransport();

        // Once we have the transporter registered, we will register the actual Swift
        // mailer instance, passing in the transport instances, which allows us to
        // override this transporter instances during app start-up if necessary.
        $this->app->singleton('swift.mailer', function ($app) {
            if ($domain = $app->make('config')->get('mail.domain')) {
                Swift_DependencyContainer::getInstance()
                                ->register('mime.idgenerator.idright')
                                ->asValue($domain);
            }

            return new Swift_Mailer($app['swift.transport']->driver());
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...