diff --git a/core/modules/serialization/src/Encoder/JsonEncoder.php b/core/modules/serialization/src/Encoder/JsonEncoder.php index 91b9b4049365..a03648e20d24 100644 --- a/core/modules/serialization/src/Encoder/JsonEncoder.php +++ b/core/modules/serialization/src/Encoder/JsonEncoder.php @@ -2,8 +2,6 @@ namespace Drupal\serialization\Encoder; -use Symfony\Component\Serializer\Encoder\DecoderInterface; -use Symfony\Component\Serializer\Encoder\EncoderInterface; use Symfony\Component\Serializer\Encoder\JsonDecode; use Symfony\Component\Serializer\Encoder\JsonEncode; use Symfony\Component\Serializer\Encoder\JsonEncoder as BaseJsonEncoder; @@ -15,7 +13,7 @@ use Symfony\Component\Serializer\Encoder\JsonEncoder as BaseJsonEncoder; * This encoder should not be used directly. Rather, use the `serializer` * service. */ -class JsonEncoder extends BaseJsonEncoder implements EncoderInterface, DecoderInterface { +class JsonEncoder extends BaseJsonEncoder { /** * The formats that this Encoder supports. @@ -28,40 +26,12 @@ class JsonEncoder extends BaseJsonEncoder implements EncoderInterface, DecoderIn * {@inheritdoc} */ public function __construct(JsonEncode $encodingImpl = NULL, JsonDecode $decodingImpl = NULL) { - $this->encodingImpl = $encodingImpl ?: $this->getJsonEncode(); - $this->decodingImpl = $decodingImpl ?: $this->getJsonDecode(); - } - - /** - * Instantiates a JsonEncode instance. - * - * @internal this exists to bridge Symfony 3 to Symfony 4, and can be removed - * once Drupal requires Symfony 4.2 or higher. - */ - private function getJsonEncode() { // Encode <, >, ', &, and " for RFC4627-compliant JSON, which may also be // embedded into HTML. // @see \Symfony\Component\HttpFoundation\JsonResponse $json_encoding_options = JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT; - $reflection = new \ReflectionClass(JsonEncode::class); - if (array_key_exists('OPTIONS', $reflection->getConstants())) { - return new JsonEncode([JsonEncode::OPTIONS => $json_encoding_options]); - } - return new JsonEncode($json_encoding_options); - } - - /** - * Instantiates a JsonDecode instance. - * - * @internal this exists to bridge Symfony 3 to Symfony 4, and can be removed - * once Drupal requires Symfony 4.2 or higher. - */ - private function getJsonDecode() { - $reflection = new \ReflectionClass(JsonDecode::class); - if (array_key_exists('ASSOCIATIVE', $reflection->getConstants())) { - return new JsonDecode([JsonDecode::ASSOCIATIVE => TRUE]); - } - return new JsonDecode(TRUE); + $this->encodingImpl = $encodingImpl ?: new JsonEncode([JsonEncode::OPTIONS => $json_encoding_options]); + $this->decodingImpl = $decodingImpl ?: new JsonDecode([JsonDecode::ASSOCIATIVE => TRUE]); } /**