From a1762fb65423dc94d69c5fb6abaed37f2ad576e6 Mon Sep 17 00:00:00 2001 From: Patrick Landolt Date: Fri, 6 Jun 2014 17:58:03 +0200 Subject: [PATCH] [HttpKernel] added value of DateTime object and objects implementing DateTimeInterface to ValueExporter --- .../DataCollector/Util/ValueExporter.php | 4 ++ .../DataCollector/Util/ValueExporterTest.php | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/Symfony/Component/HttpKernel/Tests/DataCollector/Util/ValueExporterTest.php diff --git a/src/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php b/src/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php index 31b60e6e40..1d78fb5c0e 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php @@ -28,6 +28,10 @@ class ValueExporter public function exportValue($value, $depth = 1, $deep = false) { if (is_object($value)) { + if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) { + return sprintf('Object(%s) - %s', get_class($value), $value->format(\DateTime::ISO8601)); + } + return sprintf('Object(%s)', get_class($value)); } diff --git a/src/Symfony/Component/HttpKernel/Tests/DataCollector/Util/ValueExporterTest.php b/src/Symfony/Component/HttpKernel/Tests/DataCollector/Util/ValueExporterTest.php new file mode 100644 index 0000000000..a1c4c1324b --- /dev/null +++ b/src/Symfony/Component/HttpKernel/Tests/DataCollector/Util/ValueExporterTest.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\Tests\Util\DataCollector; + +use Symfony\Component\HttpKernel\DataCollector\Util\ValueExporter; + +class ValueExporterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var ValueExporter + */ + private $valueExporter; + + protected function setUp() + { + $this->valueExporter = new ValueExporter(); + } + + public function testDateTime() + { + $dateTime = new \DateTime('2014-06-10 07:35:40', new \DateTimeZone('UTC')); + $this->assertSame('Object(DateTime) - 2014-06-10T07:35:40+0000', $this->valueExporter->exportValue($dateTime)); + } + + public function testDateTimeImmutable() + { + if (!class_exists('DateTimeImmutable', false)) { + $this->markTestSkipped('Test skipped, class DateTimeImmutable does not exist.'); + } + + $dateTime = new \DateTimeImmutable('2014-06-10 07:35:40', new \DateTimeZone('UTC')); + $this->assertSame('Object(DateTimeImmutable) - 2014-06-10T07:35:40+0000', $this->valueExporter->exportValue($dateTime)); + } +}