如何覆盖Sylius电子邮件系统(How to override Sylius email syst

2019-10-20 03:25发布

我需要一个PDF文件附加到Sylius订单确认电子邮件。

到目前为止,我做到了黑客的Sylius核心软件包:在/Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php我生成一个枝杈模板,我的订单信息PDF文件(使用KNP斯纳皮),并将其附加到电子邮件。 它工作正常,我想从核心软件包删除这一点,并把它放在我自己的包(所以核心软件包可以保持不变)。

但是,这个过程涉及到几个服务/事件侦听器,我怕我需要重写所有的人(即OrderConfirmationEmailListener.php,OrderConfirmationMailer.php,TwigSwiftMailer.php)...

有没有人有关于如何实现这一目标显然是个不错的铅/主意?

谢谢

Answer 1:

听众不应该是这样的一个大问题。 你不应该覆盖它们,你应该能够重视自己。 所以,如果我是你,我会附上我自己的听众(他们实现在自己的包),原代码复制粘贴与您的自定义一起,将其注册为服务,并将它们连接到他们的尊敬的来源(可能使用标签您的服务注册文件 - 这是附加它们)的常用方法。 这应该让你有你自己的包一切,你应该能够从您的自定义代码清除原件捆。 另外请注意,您可以仅通过改变正确的类名参数来自己实现一个使用的服务配置文件覆盖众多核心类。

这是所有我能想到的,而不考虑看看一些代码。 希望能帮助到你。



Answer 2:

我用zendframework2与Zend的\邮件发送邮件\

见文件http://framework.zend.com/manual/2.2/en/modules/zend.mail.attachments.html的一个例子。



文章来源: How to override Sylius email system