Мне нужно приложить файл PDF к письму подтверждения заказа в Sylius.
Пока что я взломал пакет Sylius Core Bundle: в /Sylius/Bundle/CoreBundle/Mailer/TwigSwiftMailer.php Я создаю PDF-файл из шаблона Twig и информацию о моем заказе (используя Knp Snappy) и прикрепляю его к электронной почте. Он отлично работает, и я хотел бы удалить это из Core Bundle и поместить его в свои собственные пакеты (так что Core Bundle может остаться нетронутым).
Но этот процесс включает в себя несколько служб / прослушивателей событий, и я боюсь, что мне нужно переопределить их все (то есть OrderConfirmationEmailListener.php, OrderConfirmationMailer.php, TwigSwiftMailer.php) …
Кто-нибудь имеет хорошее руководство / идею о том, как это сделать?
благодаря
Слушатели не должны быть такой большой проблемой. Вы не должны переопределять их, вы должны быть в состоянии приложить свои собственные. Поэтому, если бы я был вами, я бы привязал своих собственных слушателей (с их реализацией в вашем собственном пакете), скопируйте исходный код вместе с вашими настройками, зарегистрируйте их как службы и присоедините их к их респектабельным источникам (возможно, используя теги в файл регистрации ваших сервисов – это общий способ их присоединения). Это должно позволить вам иметь все в своем собственном пакете, и вы должны иметь возможность очистить исходный пакет от вашего пользовательского кода. Также обратите внимание, что вы можете использовать файл конфигурации служб, чтобы переопределить многие основные классы, просто изменив правильный параметр имени класса на одну из ваших собственных реализаций.
Это все, о чем я могу думать, не взглянув на какой-то код. Надеюсь, поможет.
Я использую zendframework2 для отправки почты с Zend \ Mail \
Для примера см. Doc http://framework.zend.com/manual/2.2/ru/modules/zend.mail.attachments.html .