Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何覆盖Sylius电子邮件系统_Php_Symfony_Swiftmailer_Sylius - Fatal编程技术网

Php 如何覆盖Sylius电子邮件系统

Php 如何覆盖Sylius电子邮件系统,php,symfony,swiftmailer,sylius,Php,Symfony,Swiftmailer,Sylius,我需要在Sylius的订单确认电子邮件中附加一个PDF文件 到目前为止,我对Sylius核心包进行了黑客攻击:在/Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php中,我从一个小树枝模板和我的订单信息(使用Knp Snappy)生成一个PDF,并将其附加到电子邮件中。它工作得很好,我想把它从核心包中移除,然后放到我自己的包中(这样核心包就可以保持不变) 但是这个过程涉及几个服务/事件侦听器,我恐怕需要覆盖所有这些服务/事件侦听器(即orderc

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

到目前为止,我对Sylius核心包进行了黑客攻击:在/Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php中,我从一个小树枝模板和我的订单信息(使用Knp Snappy)生成一个PDF,并将其附加到电子邮件中。它工作得很好,我想把它从核心包中移除,然后放到我自己的包中(这样核心包就可以保持不变)

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

有没有人对如何实现这一目标有很好的指导/想法


谢谢

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

见医生
例如。

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


这就是我所能想到的,不用看一些代码。希望有帮助。

谢谢,但我需要关于如何正确覆盖Sylius(Symfony2电子商务捆绑包)中涉及的代码片段的建议,以避免攻击Sylius捆绑包核心。将我的PDF文件附加到电子邮件是最简单的部分。我原来的问题标题被更正了,不太清楚,我重新编辑了它…谢谢,事实上,自从我请求帮助以来,我就是这么做的!我覆盖了两个服务(事实上不需要覆盖侦听器),复制粘贴原始代码,添加我的内容并设置我的config.yml(据我所知,您可以在config.yml中重新定义同名的服务/侦听器,最后一个被使用)。感谢您的回复Andrej,这对我很有帮助!