فهرست منبع

Fix SwiftMailerHandler support for Swiftmailer 6.0+

Alex Rock Ancelet 8 سال پیش
والد
کامیت
d84af8db3c
3فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 1 1
      composer.json
  2. 6 1
      src/Monolog/Handler/SwiftMailerHandler.php
  3. 1 1
      tests/Monolog/Handler/SwiftMailerHandlerTest.php

+ 1 - 1
composer.json

@@ -24,7 +24,7 @@
         "doctrine/couchdb": "~1.0@dev",
         "aws/aws-sdk-php": "^2.4.9 || ^3.0",
         "php-amqplib/php-amqplib": "~2.4",
-        "swiftmailer/swiftmailer": "~5.3",
+        "swiftmailer/swiftmailer": "^5.3|^6.0",
         "php-console/php-console": "^3.1.3",
         "phpunit/phpunit-mock-objects": "2.3.0",
         "jakub-onderka/php-parallel-lint": "0.9"

+ 6 - 1
src/Monolog/Handler/SwiftMailerHandler.php

@@ -13,6 +13,7 @@ namespace Monolog\Handler;
 
 use Monolog\Logger;
 use Monolog\Formatter\LineFormatter;
+use Swift;
 
 /**
  * SwiftMailerHandler uses Swift_Mailer to send the emails
@@ -73,7 +74,11 @@ class SwiftMailerHandler extends MailHandler
         }
 
         $message->setBody($content);
-        $message->setDate(time());
+        if (version_compare(Swift::VERSION, '6.0.0', '>=')) {
+            $message->setDate(new \DateTimeImmutable());
+        } else {
+            $message->setDate(time());
+        }
 
         return $message;
     }

+ 1 - 1
tests/Monolog/Handler/SwiftMailerHandlerTest.php

@@ -98,7 +98,7 @@ class SwiftMailerHandlerTest extends TestCase
 
     public function testMessageHaveUniqueId()
     {
-        $messageTemplate = \Swift_Message::newInstance();
+        $messageTemplate = new \Swift_Message();
         $handler = new SwiftMailerHandler($this->mailer, $messageTemplate);
 
         $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage');