Intereting Posts
Как переопределить сообщения об ошибках проверки для класса загрузки файлов в CI? Как получить использование дискового пространства и ежемесячную передачу пропускной способности из cPanel на мой сайт в PHP Подпись MAC, найденная в HTTP-запросе, не совпадает с любой вычисляемой интеграцией azure подписи с использованием php php json_encode большой массив Получить результаты запроса для диапазона дат Проверка и преобразование десятичных значений в CakePHP Как добавить текст в файл на 15 строк выше его конца странное поведение wp_enqueue_script на локальной установке xampp Добавление значения пользовательского поля для заказа деталей вызывать url по php и проверять, если он зарегистрирован PHP против движка шаблонов установить CakePHP на Mac osx: проблемы с apache Проблемы с PHP 5.3 и папками сеансов Файлы PHP отправляют только «parsererror» через AJAX Woocommerce: проверка пользовательских полей на странице редактирования учетной записи

Как переопределить систему электронной почты Sylius

Мне нужно приложить файл 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 .