ソースを参照

Tweak patch a bit, refs #617

Jordi Boggiano 10 年 前
コミット
419ca7ac25
2 ファイル変更8 行追加9 行削除
  1. 6 7
      src/Monolog/Logger.php
  2. 2 2
      tests/Monolog/LoggerTest.php

+ 6 - 7
src/Monolog/Logger.php

@@ -176,19 +176,18 @@ class Logger implements LoggerInterface
     }
     }
 
 
     /**
     /**
-     * Set handlers, removing all existing ones.
-     * Falsey values will be ignored, and if a map is passed, keys will be ignored.
+     * Set handlers, replacing all existing ones.
      *
      *
-     * @param array $handlers All elements must be of type HandlerInterface
+     * If a map is passed, keys will be ignored.
+     *
+     * @param HandlerInterface[] $handlers
      * @return $this
      * @return $this
      */
      */
     public function setHandlers(array $handlers)
     public function setHandlers(array $handlers)
     {
     {
         $this->handlers = array();
         $this->handlers = array();
-        foreach ($handlers as $handler) {
-            if ($handler) {
-                $this->pushHandler($handler);
-            }
+        foreach (array_reverse($handlers) as $handler) {
+            $this->pushHandler($handler);
         }
         }
 
 
         return $this;
         return $this;

+ 2 - 2
tests/Monolog/LoggerTest.php

@@ -156,11 +156,11 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
 
 
         $logger->setHandlers(array(
         $logger->setHandlers(array(
             "AMapKey" => $handler1,
             "AMapKey" => $handler1,
-            "Falsey" => null,
+            "Woop" => $handler2,
         ));
         ));
 
 
         // Keys have been scrubbed
         // Keys have been scrubbed
-        $this->assertEquals(array($handler1), $logger->getHandlers());
+        $this->assertEquals(array($handler1, $handler2), $logger->getHandlers());
     }
     }
 
 
     /**
     /**