From 42904e34e6b62c56a3c4cdcf1002ac9c900896fc Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 4 Jun 2019 20:58:48 +0200 Subject: [PATCH] [HttpClient] work around PHP 7.3 bug related to json_encode() --- src/Symfony/Component/HttpClient/HttpClientTrait.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpClient/HttpClientTrait.php b/src/Symfony/Component/HttpClient/HttpClientTrait.php index 0023e3bbb0f5..bea095134edf 100644 --- a/src/Symfony/Component/HttpClient/HttpClientTrait.php +++ b/src/Symfony/Component/HttpClient/HttpClientTrait.php @@ -301,7 +301,13 @@ private static function jsonEncode($value, int $flags = null, int $maxDepth = 51 } try { - $value = json_encode($value, $flags | (\PHP_VERSION_ID >= 70300 ? JSON_THROW_ON_ERROR : 0), $maxDepth); + if (\PHP_VERSION_ID >= 70300) { + // Work around https://bugs.php.net/77997 + json_encode(null); + $flags |= JSON_THROW_ON_ERROR; + } + + $value = json_encode($value, $flags, $maxDepth); } catch (\JsonException $e) { throw new InvalidArgumentException(sprintf('Invalid value for "json" option: %s.', $e->getMessage())); }