PropertyNormalizer

class PropertyNormalizer extends AbstractObjectNormalizer

Converts between objects and arrays by mapping properties.

The normalization process looks for all the object's properties (public and private). The result is a map from property names to property values. Property values are normalized through the serializer.

The denormalization first looks at the constructor of the given class to see if any of the parameters have the same name as one of the properties. The constructor is then called with all parameters or an exception is thrown if any required parameters were not present as properties. Then the denormalizer walks through the given map of property names to property values to see if a property with the corresponding name exists. If found, the property gets the value.

Traits

ObjectToPopulateTrait
SerializerAwareTrait SerializerAware trait.

Constants

CIRCULAR_REFERENCE_LIMIT
OBJECT_TO_POPULATE
GROUPS
ATTRIBUTES
ALLOW_EXTRA_ATTRIBUTES
ENABLE_MAX_DEPTH
DEPTH_KEY_PATTERN
DISABLE_TYPE_ENFORCEMENT

Methods

setSerializer(SerializerInterface $serializer)

Sets the serializer.

from SerializerAwareTrait
__construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null)

Sets the {@link ClassMetadataFactoryInterface} to use.

from AbstractObjectNormalizer
AbstractNormalizer setCircularReferenceLimit(int $circularReferenceLimit)

Set circular reference limit.

from AbstractNormalizer
AbstractNormalizer setCircularReferenceHandler(callable $circularReferenceHandler)

Set circular reference handler.

from AbstractNormalizer
AbstractNormalizer setCallbacks(array $callbacks)

Set normalization callbacks.

from AbstractNormalizer
AbstractNormalizer setIgnoredAttributes(array $ignoredAttributes)

Set ignored attributes for normalization and denormalization.

from AbstractNormalizer
bool supportsNormalization(mixed $data, string $format = null)

Checks whether the given class is supported for normalization by this normalizer.

array|scalar normalize(object $object, string $format = null, array $context = array())

Normalizes an object into a set of arrays/scalars.

from AbstractObjectNormalizer
bool supportsDenormalization(mixed $data, string $type, string $format = null)

Checks whether the given class is supported for denormalization by this normalizer.

object denormalize(mixed $data, string $class, string $format = null, array $context = array())

Denormalizes data back into an object of the given class.

from AbstractObjectNormalizer

Details

setSerializer(SerializerInterface $serializer)

Sets the serializer.

Parameters

SerializerInterface $serializer A SerializerInterface instance

__construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null)

Sets the {@link ClassMetadataFactoryInterface} to use.

Parameters

ClassMetadataFactoryInterface $classMetadataFactory
NameConverterInterface $nameConverter
PropertyTypeExtractorInterface $propertyTypeExtractor

AbstractNormalizer setCircularReferenceLimit(int $circularReferenceLimit)

Set circular reference limit.

Parameters

int $circularReferenceLimit Limit of iterations for the same object

Return Value

AbstractNormalizer

AbstractNormalizer setCircularReferenceHandler(callable $circularReferenceHandler)

Set circular reference handler.

Parameters

callable $circularReferenceHandler

Return Value

AbstractNormalizer

AbstractNormalizer setCallbacks(array $callbacks)

Set normalization callbacks.

Parameters

array $callbacks Help normalize the result

Return Value

AbstractNormalizer

Exceptions

InvalidArgumentException if a non-callable callback is set

AbstractNormalizer setIgnoredAttributes(array $ignoredAttributes)

Set ignored attributes for normalization and denormalization.

Parameters

array $ignoredAttributes

Return Value

AbstractNormalizer

bool supportsNormalization(mixed $data, string $format = null)

Checks whether the given class is supported for normalization by this normalizer.

Parameters

mixed $data Data to normalize
string $format The format being (de-)serialized from or into

Return Value

bool

array|scalar normalize(object $object, string $format = null, array $context = array())

Normalizes an object into a set of arrays/scalars.

Parameters

object $object Object to normalize
string $format Format the normalization result will be encoded as
array $context Context options for the normalizer

Return Value

array|scalar

Exceptions

InvalidArgumentException Occurs when the object given is not an attempted type for the normalizer
CircularReferenceException Occurs when the normalizer detects a circular reference when no circular reference handler can fix it
LogicException Occurs when the normalizer is not called in an expected context

bool supportsDenormalization(mixed $data, string $type, string $format = null)

Checks whether the given class is supported for denormalization by this normalizer.

Parameters

mixed $data Data to denormalize from
string $type The class to which the data should be denormalized
string $format The format being deserialized from

Return Value

bool

object denormalize(mixed $data, string $class, string $format = null, array $context = array())

Denormalizes data back into an object of the given class.

Parameters

mixed $data Data to restore
string $class The expected class to instantiate
string $format Format the given data was extracted from
array $context Options available to the denormalizer

Return Value

object

Exceptions

BadMethodCallException Occurs when the normalizer is not called in an expected context
InvalidArgumentException Occurs when the arguments are not coherent or not supported
UnexpectedValueException Occurs when the item cannot be hydrated with the given data
ExtraAttributesException Occurs when the item doesn't have attribute to receive given data
LogicException Occurs when the normalizer is not supposed to denormalize
RuntimeException Occurs if the class cannot be instantiated

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.html