فهرست منبع

Add support for serializing resources in LineFormatter

Jordi Boggiano 14 سال پیش
والد
کامیت
9c2f081c9a
2فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  1. 4 0
      src/Monolog/Formatter/LineFormatter.php
  2. 2 2
      tests/Monolog/Formatter/LineFormatterTest.php

+ 4 - 0
src/Monolog/Formatter/LineFormatter.php

@@ -96,6 +96,10 @@ class LineFormatter implements FormatterInterface
             return $normalized;
         }
 
+        if (is_resource($data)) {
+            return '[resource]';
+        }
+
         return sprintf("[object] (%s: %s)", get_class($data), json_encode($data));
     }
 }

+ 2 - 2
tests/Monolog/Formatter/LineFormatterTest.php

@@ -68,10 +68,10 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase
             'channel' => 'meh',
             'context' => array(),
             'datetime' => new \DateTime,
-            'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array()),
+            'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')),
             'message' => 'foobar',
         ));
-        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\Formatter\\TestFoo: {"foo":"foo"})","bar":"[object] (Monolog\\Formatter\\TestBar: {})","baz":[]}'."\n", $message);
+        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\Formatter\\TestFoo: {"foo":"foo"})","bar":"[object] (Monolog\\Formatter\\TestBar: {})","baz":[],"res":"[resource]"}'."\n", $message);
     }
 
     public function testBatchFormat()