Pārlūkot izejas kodu

Fix serialization implementation

Jordi Boggiano 2 gadi atpakaļ
vecāks
revīzija
c8b1e0e789
2 mainītis faili ar 6 papildinājumiem un 2 dzēšanām
  1. 1 1
      src/Monolog/Logger.php
  2. 5 1
      tests/Monolog/LoggerTest.php

+ 1 - 1
src/Monolog/Logger.php

@@ -741,7 +741,7 @@ class Logger implements LoggerInterface, ResettableInterface
     {
         foreach (['name', 'handlers', 'processors', 'microsecondTimestamps', 'timezone', 'exceptionHandler', 'logDepth', 'detectCycles'] as $property) {
             if (isset($data[$property])) {
-                $this->$property = $data;
+                $this->$property = $data[$property];
             }
         }
 

+ 5 - 1
tests/Monolog/LoggerTest.php

@@ -700,7 +700,11 @@ class LoggerTest extends \PHPUnit\Framework\TestCase
     public function testSerializable()
     {
         $logger = new Logger(__METHOD__);
-        self::assertInstanceOf(Logger::class, unserialize(serialize($logger)));
+        $copy = unserialize(serialize($logger));
+        self::assertInstanceOf(Logger::class, $copy);
+        self::assertSame($logger->getName(), $copy->getName());
+        self::assertSame($logger->getTimezone()->getName(), $copy->getTimezone()->getName());
+        self::assertSame($logger->getHandlers(), $copy->getHandlers());
     }
 
     public function testReset()