[Serializer] Add more parameter types.

This commit is contained in:
Alexander M. Turek 2019-08-14 21:53:08 +02:00
parent 86a2a9df23
commit 73b17a8ecf
34 changed files with 109 additions and 127 deletions

View File

@ -102,7 +102,7 @@ class CsvEncoder implements EncoderInterface, DecoderInterface
/**
* {@inheritdoc}
*/
public function supportsEncoding($format)
public function supportsEncoding(string $format)
{
return self::FORMAT === $format;
}
@ -184,7 +184,7 @@ class CsvEncoder implements EncoderInterface, DecoderInterface
/**
* {@inheritdoc}
*/
public function supportsDecoding($format)
public function supportsDecoding(string $format)
{
return self::FORMAT === $format;
}

View File

@ -30,7 +30,7 @@ final class ObjectPropertyListExtractor implements ObjectPropertyListExtractorIn
/**
* {@inheritdoc}
*/
public function getProperties($object, array $context = []): ?array
public function getProperties(object $object, array $context = []): ?array
{
$class = $this->objectClassResolver ? ($this->objectClassResolver)($object) : \get_class($object);

View File

@ -19,9 +19,7 @@ interface ObjectPropertyListExtractorInterface
/**
* Gets the list of properties available for the given object.
*
* @param object $object
*
* @return string[]|null
*/
public function getProperties($object, array $context = []): ?array;
public function getProperties(object $object, array $context = []): ?array;
}

View File

@ -66,7 +66,7 @@ class AttributeMetadata implements AttributeMetadataInterface
/**
* {@inheritdoc}
*/
public function addGroup($group)
public function addGroup(string $group)
{
if (!\in_array($group, $this->groups)) {
$this->groups[] = $group;
@ -84,7 +84,7 @@ class AttributeMetadata implements AttributeMetadataInterface
/**
* {@inheritdoc}
*/
public function setMaxDepth($maxDepth)
public function setMaxDepth(?int $maxDepth)
{
$this->maxDepth = $maxDepth;
}

View File

@ -21,10 +21,10 @@ interface AdvancedNameConverterInterface extends NameConverterInterface
/**
* {@inheritdoc}
*/
public function normalize($propertyName, string $class = null, string $format = null, array $context = []);
public function normalize(string $propertyName, string $class = null, string $format = null, array $context = []);
/**
* {@inheritdoc}
*/
public function denormalize($propertyName, string $class = null, string $format = null, array $context = []);
public function denormalize(string $propertyName, string $class = null, string $format = null, array $context = []);
}

View File

@ -40,7 +40,7 @@ final class MetadataAwareNameConverter implements AdvancedNameConverterInterface
/**
* {@inheritdoc}
*/
public function normalize($propertyName, string $class = null, string $format = null, array $context = []): string
public function normalize(string $propertyName, string $class = null, string $format = null, array $context = []): string
{
if (null === $class) {
return $this->normalizeFallback($propertyName, $class, $format, $context);
@ -56,7 +56,7 @@ final class MetadataAwareNameConverter implements AdvancedNameConverterInterface
/**
* {@inheritdoc}
*/
public function denormalize($propertyName, string $class = null, string $format = null, array $context = []): string
public function denormalize(string $propertyName, string $class = null, string $format = null, array $context = []): string
{
if (null === $class) {
return $this->denormalizeFallback($propertyName, $class, $format, $context);

View File

@ -170,14 +170,11 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
/**
* Detects if the configured circular reference limit is reached.
*
* @param object $object
* @param array $context
*
* @return bool
*
* @throws CircularReferenceException
*/
protected function isCircularReference($object, &$context)
protected function isCircularReference(object $object, array &$context)
{
$objectHash = spl_object_hash($object);
@ -229,7 +226,7 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
*
* @return string[]|AttributeMetadataInterface[]|bool
*/
protected function getAllowedAttributes($classOrObject, array $context, $attributesAsString = false)
protected function getAllowedAttributes($classOrObject, array $context, bool $attributesAsString = false)
{
$allowExtraAttributes = $context[self::ALLOW_EXTRA_ATTRIBUTES] ?? $this->defaultContext[self::ALLOW_EXTRA_ATTRIBUTES];
if (!$this->classMetadataFactory) {
@ -265,12 +262,10 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
* Is this attribute allowed?
*
* @param object|string $classOrObject
* @param string $attribute
* @param string|null $format
*
* @return bool
*/
protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = [])
protected function isAllowedAttribute($classOrObject, string $attribute, string $format = null, array $context = [])
{
$ignoredAttributes = $context[self::IGNORED_ATTRIBUTES] ?? $this->defaultContext[self::IGNORED_ATTRIBUTES];
if (\in_array($attribute, $ignoredAttributes)) {
@ -307,12 +302,11 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
* Returns the method to use to construct an object. This method must be either
* the object constructor or static.
*
* @param string $class
* @param array|bool $allowedAttributes
*
* @return \ReflectionMethod|null
*/
protected function getConstructor(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes)
protected function getConstructor(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes)
{
return $reflectionClass->getConstructor();
}
@ -325,7 +319,6 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
* is removed from the context before being returned to avoid side effects
* when recursively normalizing an object graph.
*
* @param string $class
* @param array|bool $allowedAttributes
*
* @return object
@ -333,7 +326,7 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
* @throws RuntimeException
* @throws MissingConstructorArgumentsException
*/
protected function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
{
if (null !== $object = $this->extractObjectToPopulate($class, $context, self::OBJECT_TO_POPULATE)) {
unset($context[self::OBJECT_TO_POPULATE]);
@ -408,7 +401,7 @@ abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerIn
/**
* @internal
*/
protected function denormalizeParameter(\ReflectionClass $class, \ReflectionParameter $parameter, $parameterName, $parameterData, array $context, $format = null)
protected function denormalizeParameter(\ReflectionClass $class, \ReflectionParameter $parameter, string $parameterName, $parameterData, array $context, string $format = null)
{
try {
if (null !== $parameter->getClass()) {

View File

@ -211,7 +211,7 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
/**
* {@inheritdoc}
*/
protected function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
protected function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
{
if ($this->classDiscriminatorResolver && $mapping = $this->classDiscriminatorResolver->getMappingForClass($class)) {
if (!isset($data[$mapping->getTypeProperty()])) {
@ -272,25 +272,21 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
/**
* Extracts attributes to normalize from the class of the given object, format and context.
*
* @param object $object
*
* @return string[]
*/
abstract protected function extractAttributes($object, string $format = null, array $context = []);
abstract protected function extractAttributes(object $object, string $format = null, array $context = []);
/**
* Gets the attribute value.
*
* @param object $object
*
* @return mixed
*/
abstract protected function getAttributeValue($object, string $attribute, string $format = null, array $context = []);
abstract protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = []);
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return class_exists($type) || (interface_exists($type, false) && $this->classDiscriminatorResolver && null !== $this->classDiscriminatorResolver->getMappingForClass($type));
}
@ -298,7 +294,7 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if (!isset($context['cache_key'])) {
$context['cache_key'] = $this->getCacheKey($format, $context);
@ -349,13 +345,8 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
/**
* Sets attribute value.
*
* @param object $object
* @param string $attribute
* @param mixed $value
* @param string|null $format
*/
abstract protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = []);
abstract protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = []);
/**
* Validates the submitted data and denormalizes it.
@ -435,7 +426,7 @@ abstract class AbstractObjectNormalizer extends AbstractNormalizer
/**
* @internal
*/
protected function denormalizeParameter(\ReflectionClass $class, \ReflectionParameter $parameter, $parameterName, $parameterData, array $context, $format = null)
protected function denormalizeParameter(\ReflectionClass $class, \ReflectionParameter $parameter, string $parameterName, $parameterData, array $context, string $format = null)
{
if (null === $this->propertyTypeExtractor || null === $types = $this->propertyTypeExtractor->getTypes($class->getName(), $parameterName)) {
return parent::denormalizeParameter($class, $parameter, $parameterName, $parameterData, $context, $format);

View File

@ -36,7 +36,7 @@ class ArrayDenormalizer implements ContextAwareDenormalizerInterface, Serializer
*
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if (null === $this->serializer) {
throw new BadMethodCallException('Please set a serializer before calling denormalize()!');
@ -66,7 +66,7 @@ class ArrayDenormalizer implements ContextAwareDenormalizerInterface, Serializer
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null, array $context = [])
public function supportsDenormalization($data, string $type, string $format = null, array $context = [])
{
return '[]' === substr($type, -2)
&& $this->serializer->supportsDenormalization($data, substr($type, 0, -2), $format, $context);

View File

@ -41,7 +41,7 @@ class ConstraintViolationListNormalizer implements NormalizerInterface, Cacheabl
/**
* {@inheritdoc}
*/
public function normalize($object, $format = null, array $context = [])
public function normalize($object, string $format = null, array $context = [])
{
$violations = [];
$messages = [];
@ -83,7 +83,7 @@ class ConstraintViolationListNormalizer implements NormalizerInterface, Cacheabl
/**
* {@inheritdoc}
*/
public function supportsNormalization($data, $format = null)
public function supportsNormalization($data, string $format = null)
{
return $data instanceof ConstraintViolationListInterface;
}

View File

@ -33,7 +33,7 @@ class CustomNormalizer implements NormalizerInterface, DenormalizerInterface, Se
/**
* {@inheritdoc}
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
$object = $this->extractObjectToPopulate($type, $context) ?: new $type();
$object->denormalize($this->serializer, $data, $format, $context);
@ -63,7 +63,7 @@ class CustomNormalizer implements NormalizerInterface, DenormalizerInterface, Se
*
* @return bool
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return is_subclass_of($type, DenormalizableInterface::class);
}

View File

@ -89,7 +89,7 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C
* @throws InvalidArgumentException
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if (!preg_match('/^data:([a-z0-9][a-z0-9\!\#\$\&\-\^\_\+\.]{0,126}\/[a-z0-9][a-z0-9\!\#\$\&\-\^\_\+\.]{0,126}(;[a-z0-9\-]+\=[a-z0-9\-]+)?)?(;base64)?,[a-z0-9\!\$\&\\\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i', $data)) {
throw new NotNormalizableValueException('The provided "data:" URI is not valid.');
@ -118,7 +118,7 @@ class DataUriNormalizer implements NormalizerInterface, DenormalizerInterface, C
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return isset(self::$supportedTypes[$type]);
}

View File

@ -69,7 +69,7 @@ class DateIntervalNormalizer implements NormalizerInterface, DenormalizerInterfa
* @throws InvalidArgumentException
* @throws UnexpectedValueException
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if (!\is_string($data)) {
throw new InvalidArgumentException(sprintf('Data expected to be a string, %s given.', \gettype($data)));
@ -118,7 +118,7 @@ class DateIntervalNormalizer implements NormalizerInterface, DenormalizerInterfa
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return \DateInterval::class === $type;
}

View File

@ -76,7 +76,7 @@ class DateTimeNormalizer implements NormalizerInterface, DenormalizerInterface,
*
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
$dateTimeFormat = $context[self::FORMAT_KEY] ?? null;
$timezone = $this->getTimezone($context);
@ -113,7 +113,7 @@ class DateTimeNormalizer implements NormalizerInterface, DenormalizerInterface,
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return isset(self::$supportedTypes[$type]);
}

View File

@ -48,7 +48,7 @@ class DateTimeZoneNormalizer implements NormalizerInterface, DenormalizerInterfa
*
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if ('' === $data || null === $data) {
throw new NotNormalizableValueException('The data is either an empty string or null, you should pass a string that can be parsed as a DateTimeZone.');
@ -64,7 +64,7 @@ class DateTimeZoneNormalizer implements NormalizerInterface, DenormalizerInterfa
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return \DateTimeZone::class === $type;
}

View File

@ -36,5 +36,5 @@ interface DenormalizableInterface
*
* @return object|object[]
*/
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = []);
public function denormalize(DenormalizerInterface $denormalizer, $data, string $format = null, array $context = []);
}

View File

@ -47,7 +47,7 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return parent::supportsDenormalization($data, $type, $format) && $this->supports($type);
}
@ -97,7 +97,7 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function extractAttributes($object, $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
$reflectionObject = new \ReflectionObject($object);
$reflectionMethods = $reflectionObject->getMethods(\ReflectionMethod::IS_PUBLIC);
@ -121,7 +121,7 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function getAttributeValue($object, $attribute, $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
$ucfirsted = ucfirst($attribute);
@ -144,7 +144,7 @@ class GetSetMethodNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
$setter = 'set'.ucfirst($attribute);
$key = \get_class($object).':'.$setter;

View File

@ -52,7 +52,7 @@ class JsonSerializableNormalizer extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return false;
}
@ -60,7 +60,7 @@ class JsonSerializableNormalizer extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function denormalize($data, $type, string $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
throw new LogicException(sprintf('Cannot denormalize with "%s".', \JsonSerializable::class));
}

View File

@ -60,7 +60,7 @@ class ObjectNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function extractAttributes($object, string $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
// If not using groups, detect manually
$attributes = [];
@ -118,7 +118,7 @@ class ObjectNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function getAttributeValue($object, $attribute, string $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
$cacheKey = \get_class($object);
if (!\array_key_exists($cacheKey, $this->discriminatorCache)) {
@ -135,7 +135,7 @@ class ObjectNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
try {
$this->propertyAccessor->setValue($object, $attribute, $value);
@ -147,7 +147,7 @@ class ObjectNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function getAllowedAttributes($classOrObject, array $context, $attributesAsString = false)
protected function getAllowedAttributes($classOrObject, array $context, bool $attributesAsString = false)
{
if (false === $allowedAttributes = parent::getAllowedAttributes($classOrObject, $context, $attributesAsString)) {
return false;

View File

@ -23,7 +23,7 @@ trait ObjectToPopulateTrait
*
* @return object|null an object if things check out, null otherwise
*/
protected function extractObjectToPopulate($class, array $context, $key = null)
protected function extractObjectToPopulate(string $class, array $context, string $key = null)
{
$key = $key ?? AbstractNormalizer::OBJECT_TO_POPULATE;

View File

@ -41,7 +41,7 @@ class PropertyNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, string $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return parent::supportsDenormalization($data, $type, $format) && $this->supports($type);
}
@ -76,7 +76,7 @@ class PropertyNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = [])
protected function isAllowedAttribute($classOrObject, string $attribute, string $format = null, array $context = [])
{
if (!parent::isAllowedAttribute($classOrObject, $attribute, $format, $context)) {
return false;
@ -97,7 +97,7 @@ class PropertyNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function extractAttributes($object, string $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
$reflectionObject = new \ReflectionObject($object);
$attributes = [];
@ -118,7 +118,7 @@ class PropertyNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function getAttributeValue($object, $attribute, string $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
try {
$reflectionProperty = $this->getReflectionProperty($object, $attribute);
@ -137,7 +137,7 @@ class PropertyNormalizer extends AbstractObjectNormalizer
/**
* {@inheritdoc}
*/
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
try {
$reflectionProperty = $this->getReflectionProperty($object, $attribute);

View File

@ -109,7 +109,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
final public function serialize($data, $format, array $context = [])
final public function serialize($data, string $format, array $context = [])
{
if (!$this->supportsEncoding($format, $context)) {
throw new NotEncodableValueException(sprintf('Serialization for the format %s is not supported', $format));
@ -125,7 +125,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
final public function deserialize($data, $type, $format, array $context = [])
final public function deserialize($data, string $type, string $format, array $context = [])
{
if (!$this->supportsDecoding($format, $context)) {
throw new NotEncodableValueException(sprintf('Deserialization for the format %s is not supported', $format));
@ -139,7 +139,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
public function normalize($data, $format = null, array $context = [])
public function normalize($data, string $format = null, array $context = [])
{
// If a normalizer supports the given data, use it
if ($normalizer = $this->getNormalizer($data, $format, $context)) {
@ -175,7 +175,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
*
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
if (!$this->normalizers) {
throw new LogicException('You must register at least one normalizer to be able to denormalize objects.');
@ -191,7 +191,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
public function supportsNormalization($data, $format = null, array $context = [])
public function supportsNormalization($data, string $format = null, array $context = [])
{
return null !== $this->getNormalizer($data, $format, $context);
}
@ -199,7 +199,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null, array $context = [])
public function supportsDenormalization($data, string $type, string $format = null, array $context = [])
{
return null !== $this->getDenormalizer($data, $type, $format, $context);
}
@ -282,7 +282,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
final public function encode($data, $format, array $context = [])
final public function encode($data, string $format, array $context = [])
{
return $this->encoder->encode($data, $format, $context);
}
@ -290,7 +290,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
final public function decode($data, $format, array $context = [])
final public function decode(string $data, string $format, array $context = [])
{
return $this->decoder->decode($data, $format, $context);
}
@ -298,7 +298,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
public function supportsEncoding($format, array $context = [])
public function supportsEncoding(string $format, array $context = [])
{
return $this->encoder->supportsEncoding($format, $context);
}
@ -306,7 +306,7 @@ class Serializer implements SerializerInterface, ContextAwareNormalizerInterface
/**
* {@inheritdoc}
*/
public function supportsDecoding($format, array $context = [])
public function supportsDecoding(string $format, array $context = [])
{
return $this->decoder->supportsDecoding($format, $context);
}

View File

@ -124,12 +124,12 @@ class ChainNormalizationAwareEncoder extends ChainEncoder implements Normalizati
class NormalizationAwareEncoder implements EncoderInterface, NormalizationAwareInterface
{
public function supportsEncoding($format)
public function supportsEncoding(string $format)
{
return true;
}
public function encode($data, $format, array $context = [])
public function encode($data, string $format, array $context = [])
{
}
}

View File

@ -23,7 +23,7 @@ class AbstractNormalizerDummy extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function getAllowedAttributes($classOrObject, array $context, $attributesAsString = false)
public function getAllowedAttributes($classOrObject, array $context, bool $attributesAsString = false)
{
return parent::getAllowedAttributes($classOrObject, $context, $attributesAsString);
}
@ -31,14 +31,14 @@ class AbstractNormalizerDummy extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function normalize($object, $format = null, array $context = [])
public function normalize($object, string $format = null, array $context = [])
{
}
/**
* {@inheritdoc}
*/
public function supportsNormalization($data, $format = null)
public function supportsNormalization($data, string $format = null)
{
return true;
}
@ -46,14 +46,14 @@ class AbstractNormalizerDummy extends AbstractNormalizer
/**
* {@inheritdoc}
*/
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
}
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return true;
}

View File

@ -16,7 +16,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
class DenormalizableDummy implements DenormalizableInterface
{
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = [])
public function denormalize(DenormalizerInterface $denormalizer, $data, string $format = null, array $context = [])
{
}
}

View File

@ -23,7 +23,7 @@ class Dummy implements NormalizableInterface, DenormalizableInterface
public $baz;
public $qux;
public function normalize(NormalizerInterface $normalizer, $format = null, array $context = [])
public function normalize(NormalizerInterface $normalizer, string $format = null, array $context = [])
{
return [
'foo' => $this->foo,
@ -33,7 +33,7 @@ class Dummy implements NormalizableInterface, DenormalizableInterface
];
}
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = [])
public function denormalize(DenormalizerInterface $denormalizer, $data, string $format = null, array $context = [])
{
$this->foo = $data['foo'];
$this->bar = $data['bar'];

View File

@ -18,7 +18,7 @@ use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
class NormalizableTraversableDummy extends TraversableDummy implements NormalizableInterface, DenormalizableInterface
{
public function normalize(NormalizerInterface $normalizer, $format = null, array $context = [])
public function normalize(NormalizerInterface $normalizer, string $format = null, array $context = [])
{
return [
'foo' => 'normalizedFoo',
@ -26,7 +26,7 @@ class NormalizableTraversableDummy extends TraversableDummy implements Normaliza
];
}
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = [])
public function denormalize(DenormalizerInterface $denormalizer, $data, string $format = null, array $context = [])
{
return [
'foo' => 'denormalizedFoo',

View File

@ -21,12 +21,12 @@ class ScalarDummy implements NormalizableInterface, DenormalizableInterface
public $foo;
public $xmlFoo;
public function normalize(NormalizerInterface $normalizer, $format = null, array $context = [])
public function normalize(NormalizerInterface $normalizer, string $format = null, array $context = [])
{
return 'xml' === $format ? $this->xmlFoo : $this->foo;
}
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = [])
public function denormalize(DenormalizerInterface $denormalizer, $data, string $format = null, array $context = [])
{
if ('xml' === $format) {
$this->xmlFoo = $data;

View File

@ -21,7 +21,7 @@ class StaticConstructorNormalizer extends ObjectNormalizer
/**
* {@inheritdoc}
*/
protected function getConstructor(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes)
protected function getConstructor(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes)
{
if (is_a($class, StaticConstructorDummy::class, true)) {
return new \ReflectionMethod($class, 'create');

View File

@ -19,7 +19,7 @@ use Symfony\Component\Serializer\Mapping\ClassMetadata;
*/
class TestClassMetadataFactory
{
public static function createClassMetadata($withParent = false, $withInterface = false)
public static function createClassMetadata(bool $withParent = false, bool $withInterface = false)
{
$expected = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');

View File

@ -214,26 +214,26 @@ class AbstractObjectNormalizerTest extends TestCase
class AbstractObjectNormalizerDummy extends AbstractObjectNormalizer
{
protected function extractAttributes($object, $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
return [];
}
protected function getAttributeValue($object, $attribute, $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
}
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
$object->$attribute = $value;
}
protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = [])
protected function isAllowedAttribute($classOrObject, string $attribute, string $format = null, array $context = [])
{
return \in_array($attribute, ['foo', 'baz', 'quux', 'value']);
}
public function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
public function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
{
return parent::instantiateObject($data, $class, $context, $reflectionClass, $allowedAttributes, $format);
}
@ -257,15 +257,15 @@ class AbstractObjectNormalizerWithMetadata extends AbstractObjectNormalizer
parent::__construct(new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())));
}
protected function extractAttributes($object, $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
}
protected function getAttributeValue($object, $attribute, $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
}
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
$object->$attribute = $value;
}
@ -289,20 +289,20 @@ class SerializerCollectionDummy implements SerializerInterface, DenormalizerInte
/**
* @param DenormalizerInterface[] $normalizers
*/
public function __construct($normalizers)
public function __construct(array $normalizers)
{
$this->normalizers = $normalizers;
}
public function serialize($data, $format, array $context = [])
public function serialize($data, string $format, array $context = [])
{
}
public function deserialize($data, $type, $format, array $context = [])
public function deserialize($data, string $type, string $format, array $context = [])
{
}
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
foreach ($this->normalizers as $normalizer) {
if ($normalizer instanceof DenormalizerInterface && $normalizer->supportsDenormalization($data, $type, $format, $context)) {
@ -311,7 +311,7 @@ class SerializerCollectionDummy implements SerializerInterface, DenormalizerInte
}
}
public function supportsDenormalization($data, $type, $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return true;
}
@ -319,34 +319,34 @@ class SerializerCollectionDummy implements SerializerInterface, DenormalizerInte
class AbstractObjectNormalizerCollectionDummy extends AbstractObjectNormalizer
{
protected function extractAttributes($object, $format = null, array $context = [])
protected function extractAttributes(object $object, string $format = null, array $context = [])
{
}
protected function getAttributeValue($object, $attribute, $format = null, array $context = [])
protected function getAttributeValue(object $object, string $attribute, string $format = null, array $context = [])
{
}
protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = [])
protected function setAttributeValue(object $object, string $attribute, $value, string $format = null, array $context = [])
{
$object->$attribute = $value;
}
protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = [])
protected function isAllowedAttribute($classOrObject, string $attribute, string $format = null, array $context = [])
{
return true;
}
public function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
public function instantiateObject(array &$data, string $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, string $format = null)
{
return parent::instantiateObject($data, $class, $context, $reflectionClass, $allowedAttributes, $format);
}
public function serialize($data, $format, array $context = [])
public function serialize($data, string $format, array $context = [])
{
}
public function deserialize($data, $type, $format, array $context = [])
public function deserialize($data, string $type, string $format, array $context = [])
{
}
}
@ -363,7 +363,7 @@ class ArrayDenormalizerDummy implements DenormalizerInterface, SerializerAwareIn
*
* @throws NotNormalizableValueException
*/
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
$serializer = $this->serializer;
$type = substr($type, 0, -2);
@ -378,7 +378,7 @@ class ArrayDenormalizerDummy implements DenormalizerInterface, SerializerAwareIn
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null, array $context = [])
public function supportsDenormalization($data, string $type, string $format = null, array $context = [])
{
return '[]' === substr($type, -2)
&& $this->serializer->supportsDenormalization($data, substr($type, 0, -2), $format, $context);

View File

@ -599,12 +599,12 @@ class ObjectNormalizerTest extends TestCase
public function testAdvancedNameConverter()
{
$nameConverter = new class() implements AdvancedNameConverterInterface {
public function normalize($propertyName, string $class = null, string $format = null, array $context = [])
public function normalize(string $propertyName, string $class = null, string $format = null, array $context = []): string
{
return sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
}
public function denormalize($propertyName, string $class = null, string $format = null, array $context = [])
public function denormalize(string $propertyName, string $class = null, string $format = null, array $context = []): string
{
return sprintf('%s-%s-%s-%s', $propertyName, $class, $format, $context['foo']);
}
@ -833,7 +833,7 @@ class ObjectInner
class FormatAndContextAwareNormalizer extends ObjectNormalizer
{
protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = [])
protected function isAllowedAttribute($classOrObject, string $attribute, string $format = null, array $context = [])
{
if (\in_array($attribute, ['foo', 'bar']) && 'foo_and_bar_included' === $format) {
return true;

View File

@ -23,14 +23,14 @@ class TestDenormalizer implements DenormalizerInterface
/**
* {@inheritdoc}
*/
public function denormalize($data, $type, $format = null, array $context = [])
public function denormalize($data, string $type, string $format = null, array $context = [])
{
}
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null)
public function supportsDenormalization($data, string $type, string $format = null)
{
return true;
}

View File

@ -23,14 +23,14 @@ class TestNormalizer implements NormalizerInterface
/**
* {@inheritdoc}
*/
public function normalize($object, $format = null, array $context = [])
public function normalize($object, string $format = null, array $context = [])
{
}
/**
* {@inheritdoc}
*/
public function supportsNormalization($data, $format = null)
public function supportsNormalization($data, string $format = null)
{
return true;
}