From 8ecc11e64c4cca31b8c51bcd8cc17c05ab6f3204 Mon Sep 17 00:00:00 2001 From: Dirk Luijk Date: Thu, 26 Mar 2015 13:14:09 +0100 Subject: [PATCH] Flush spool queue for console terminate as well --- src/Silex/Provider/SwiftmailerServiceProvider.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Silex/Provider/SwiftmailerServiceProvider.php b/src/Silex/Provider/SwiftmailerServiceProvider.php index 301f89e6c..f753e07e4 100644 --- a/src/Silex/Provider/SwiftmailerServiceProvider.php +++ b/src/Silex/Provider/SwiftmailerServiceProvider.php @@ -14,6 +14,7 @@ use Pimple\Container; use Pimple\ServiceProviderInterface; use Silex\Api\EventListenerProviderInterface; +use Symfony\Component\Console\ConsoleEvents; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\PostResponseEvent; @@ -92,12 +93,18 @@ public function register(Container $app) public function subscribe(Container $app, EventDispatcherInterface $dispatcher) { - $dispatcher->addListener(KernelEvents::TERMINATE, function (PostResponseEvent $event) use ($app) { + $onTerminate = function (PostResponseEvent $event) use ($app) { // To speed things up (by avoiding Swift Mailer initialization), flush // messages only if our mailer has been created (potentially used) if ($app['mailer.initialized']) { $app['swiftmailer.spooltransport']->getSpool()->flushQueue($app['swiftmailer.transport']); } - }); + }; + + $dispatcher->addListener(KernelEvents::TERMINATE, $onTerminate); + + if (class_exists('Symfony\Component\Console\ConsoleEvents')) { + $dispatcher->addListener(ConsoleEvents::TERMINATE, $onTerminate); + } } }