feature #11070 [HttpKernel] added value of DateTime object to ValueExporter (scuben)

This PR was merged into the 2.6-dev branch.

Discussion
----------

[HttpKernel] added value of DateTime object to ValueExporter

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This will output the actual value of a DateTime object in the form panel of the web debug toolbar.

- [x] gather feedback for my change (thank you stof, its my first contribution to oss)
- [x] finish the code

Commits
-------

a1762fb [HttpKernel] added value of DateTime object and objects implementing DateTimeInterface to ValueExporter
This commit is contained in:
Fabien Potencier 2014-06-16 11:31:11 +02:00
commit 4a93d7fe3a
2 changed files with 47 additions and 0 deletions

View File

@ -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));
}

View File

@ -0,0 +1,43 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* 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));
}
}