Mercurial > hg > isophonics-drupal-site
diff vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 7a779792577d |
children | 129ea1e6d783 |
line wrap: on
line diff
--- a/vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php Mon Apr 23 09:33:26 2018 +0100 +++ b/vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php Mon Apr 23 09:46:53 2018 +0100 @@ -13,7 +13,7 @@ use Symfony\Component\Serializer\Exception\BadMethodCallException; use Symfony\Component\Serializer\Exception\InvalidArgumentException; -use Symfony\Component\Serializer\Exception\UnexpectedValueException; +use Symfony\Component\Serializer\Exception\NotNormalizableValueException; use Symfony\Component\Serializer\SerializerAwareInterface; use Symfony\Component\Serializer\SerializerInterface; @@ -21,6 +21,8 @@ * Denormalizes arrays of objects. * * @author Alexander M. Turek <me@derrabus.de> + * + * @final since version 3.3. */ class ArrayDenormalizer implements DenormalizerInterface, SerializerAwareInterface { @@ -31,16 +33,18 @@ /** * {@inheritdoc} + * + * @throws NotNormalizableValueException */ public function denormalize($data, $class, $format = null, array $context = array()) { - if ($this->serializer === null) { + if (null === $this->serializer) { throw new BadMethodCallException('Please set a serializer before calling denormalize()!'); } if (!is_array($data)) { throw new InvalidArgumentException('Data expected to be an array, '.gettype($data).' given.'); } - if (substr($class, -2) !== '[]') { + if ('[]' !== substr($class, -2)) { throw new InvalidArgumentException('Unsupported class: '.$class); } @@ -50,7 +54,7 @@ $builtinType = isset($context['key_type']) ? $context['key_type']->getBuiltinType() : null; foreach ($data as $key => $value) { if (null !== $builtinType && !call_user_func('is_'.$builtinType, $key)) { - throw new UnexpectedValueException(sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, $builtinType, gettype($key))); + throw new NotNormalizableValueException(sprintf('The type of the key "%s" must be "%s" ("%s" given).', $key, $builtinType, gettype($key))); } $data[$key] = $serializer->denormalize($value, $class, $format, $context); @@ -62,10 +66,12 @@ /** * {@inheritdoc} */ - public function supportsDenormalization($data, $type, $format = null) + public function supportsDenormalization($data, $type, $format = null/*, array $context = array()*/) { - return substr($type, -2) === '[]' - && $this->serializer->supportsDenormalization($data, substr($type, 0, -2), $format); + $context = \func_num_args() > 3 ? func_get_arg(3) : array(); + + return '[]' === substr($type, -2) + && $this->serializer->supportsDenormalization($data, substr($type, 0, -2), $format, $context); } /**