繁体   English   中英

如何覆盖Sylius电子邮件系统

[英]How to override Sylius email system

我需要在Sylius的订单确认电子邮件中附加PDF文件。

到目前为止,我已经完成了对Sylius Core Bundle的破解:在/Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php中,我从Twig模板和我的订单信息(使用Knp Snappy)生成了PDF,并将其附加到电子邮件中。 它工作正常,我想将其从Core Bundle中删除,然后放入我自己的bundle中(这样Core Bundle可以保持不变)。

但是此过程涉及多个服务/事件侦听器,恐怕我需要覆盖所有服务/事件侦听器(即OrderConfirmationEmailListener.php,OrderConfirmationMailer.php,TwigSwiftMailer.php)...

有谁对如何简单地实现这一目标有很好的领导/想法?

谢谢

听众应该不是一个大问题。 您不必覆盖它们,应该可以附加自己的东西。 因此,如果您是我,我将附加我自己的侦听器(它们在您自己的捆绑包中的实现),将原始代码与您的自定义内容一起复制粘贴,将其注册为服务并将其附加到其可观的来源(可能使用您的服务注册文件-这是附加它们的常用方法)。 这应该使您可以将所有内容都放在自己的捆绑软件中,并且应该能够从自定义代码中清除原始捆绑软件。 另外,请注意,只需将正确的类名参数更改为自己的实现之一,就可以使用服务配置文件覆盖许多核心类。

我只要不看一些代码就可以想到所有这些。 希望能帮助到你。

我使用zendframework2通过Zend \\ Mail \\发送邮件

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM