diff --git a/src/Symfony/Bridge/Doctrine/Logger/DbalLogger.php b/src/Symfony/Bridge/Doctrine/Logger/DbalLogger.php index f3d4bc032a..f3c3078a0e 100644 --- a/src/Symfony/Bridge/Doctrine/Logger/DbalLogger.php +++ b/src/Symfony/Bridge/Doctrine/Logger/DbalLogger.php @@ -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).')'); } } diff --git a/tests/Symfony/Tests/Bridge/Doctrine/Logger/DbalLoggerTest.php b/tests/Symfony/Tests/Bridge/Doctrine/Logger/DbalLoggerTest.php new file mode 100644 index 0000000000..0359bc7eca --- /dev/null +++ b/tests/Symfony/Tests/Bridge/Doctrine/Logger/DbalLoggerTest.php @@ -0,0 +1,39 @@ + + * + * 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" + )); + } +}