From 282eb9c410c3feb1260770850b672f65df2e53d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Tue, 12 Jul 2016 23:26:38 +0200 Subject: [PATCH] [Serializer] Include the format in the cache key --- .../Normalizer/AbstractObjectNormalizer.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php index 088b01f9f1..2a8018dc0b 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php @@ -56,7 +56,7 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer public function normalize($object, $format = null, array $context = array()) { if (!isset($context['cache_key'])) { - $context['cache_key'] = $this->getCacheKey($context); + $context['cache_key'] = $this->getCacheKey($format, $context); } if ($this->isCircularReference($object, $context)) { @@ -169,7 +169,7 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer public function denormalize($data, $class, $format = null, array $context = array()) { if (!isset($context['cache_key'])) { - $context['cache_key'] = $this->getCacheKey($context); + $context['cache_key'] = $this->getCacheKey($format, $context); } $allowedAttributes = $this->getAllowedAttributes($class, $context, true); $normalizedData = $this->prepareForDenormalization($data); @@ -336,14 +336,15 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer /** * Gets the cache key to use. * - * @param array $context + * @param string|null $format + * @param array $context * * @return bool|string */ - private function getCacheKey(array $context) + private function getCacheKey($format, array $context) { try { - return md5(serialize($context)); + return md5($format.serialize($context)); } catch (\Exception $exception) { // The context cannot be serialized, skip the cache return false;