Symfony 3.4-如何将Swiftmailer传递给事件监听器?

时间:2019-01-30 02:50:40

标签: symfony event-listener swiftmailer

我正在使用Stripe构建一个电子商务应用程序。我目前有几个事件监听器,当某些事情发生时(例如,创建或更新concatCustomerProduct时,会通过它的API与Stripe对话。由于这些API调用会产生多个SKU,因此在某些情况下,我希望该应用向我发送电子邮件。

那么,我该如何配置Exceptions以将Swiftmailer传递给我的侦听器?我当前的设置(单个示例,但它们或多或少看起来像这样):

services.yml

资源标签仅仅是“ @swiftmailer”吗?以及我应该在侦听器中使用什么名称空间?

1 个答案:

答案 0 :(得分:1)

如上所述,我将使用自动装配。这将避免您不得不向services.yml中添加代码,这是从Symfony 3.3开始的一种方式。

在UserHandler的构造函数中:

__construct(Swift_Mailer $mailer, SessionInterface $session, LoggerInterface $logger) {
  $this->mailer = $mailer;
  $this->logger = $logger;
  $this->session = $session;
}

因此,现在您可以在函数中调用$this->mailer,由于构造函数中的类型提示,它将bin/console debug:autowiring自动装配。会话和记录器也是如此。要查找所需的服务,可以执行以下操作:masterlist = [[1,2,3,23], ["apple","ball","chair"]] [x.append(42) for x in masterlist]

确保您在使用声明中包括以上类