首页 文章

如何覆盖Sylius电子邮件系统

提问于
浏览
1

我需要将PDF文件附加到Sylius的订单确认电子邮件中 .

到目前为止,我做了它攻击Sylius Core Bundle:在/Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php我从Twig模板和我的订单信息(使用Knp Snappy)生成PDF并将其附加到电子邮件中 . 它工作正常,我想从Core Bundle中删除它并将它放在我自己的捆绑包中(因此Core Bundle可以保持不变) .

但是这个过程涉及几个服务/事件监听器,我担心我需要覆盖所有这些(即OrderConfirmationEmailListener.php,OrderConfirmationMailer.php,TwigSwiftMailer.php)...

有没有人对如何实现这一目标有良好的领导/想法?

谢谢

2 回答

  • 2

    听众不应该是一个大问题 . 您不应该覆盖它们,您应该能够附加自己的 . 所以,如果我是你,我会附上我自己的听众(他们的实现在你自己的包中),将原始代码与你的自定义一起复制粘贴,将它们注册为服务并将它们附加到他们可敬的来源(可能使用标签)您的服务注册文件 - 这是附加它们的常用方法 . 这应该允许您拥有自己的包中的所有内容,并且您应该能够从自定义代码中清除原始包 . 另请注意,只需将正确的类名参数更改为您自己的实现之一,即可使用服务配置文件覆盖许多核心类 .

    这是我能想到的所有内容,而不用看一些代码 . 希望能帮助到你 .

  • -2

    我使用zendframework2与Zend \ Mail \发送邮件

    有关示例,请参见doc http://framework.zend.com/manual/2.2/en/modules/zend.mail.attachments.html .

相关问题