[DoctrineBridge] Fix log of non utf8 data

This commit is contained in:
Victor Berchet 2012-08-01 12:56:29 +02:00
parent 1da896dc7e
commit a0709fc365
2 changed files with 40 additions and 1 deletions

View File

@ -41,7 +41,7 @@ class DbalLogger extends DebugStack
parent::startQuery($sql, $params, $types);
if (null !== $this->logger) {
$this->log($sql.' ('.json_encode($params).')');
$this->log($sql.' ('.@json_encode($params).')');
}
}

View File

@ -0,0 +1,39 @@
<?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\Tests\Bridge\Doctrine\Logger;
class DbalLoggerTest extends \PHPUnit_Framework_TestCase
{
public function testLogNonUtf8()
{
$logger = $this->getMock('Symfony\\Component\\HttpKernel\\Log\\LoggerInterface');
$dbalLogger = $this
->getMockBuilder('Symfony\\Bridge\\Doctrine\\Logger\\DbalLogger')
->setConstructorArgs(array($logger, null))
->setMethods(array('log'))
->getMock()
;
$dbalLogger
->expects($this->once())
->method('log')
->with('SQL ({"utf8":"foo","nonutf8":null})')
;
$dbalLogger->startQuery('SQL', array(
'utf8' => 'foo',
'nonutf8' => "\x7F\xFF"
));
}
}