簡體   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