GetSetMethodNormalizer
class GetSetMethodNormalizer extends AbstractObjectNormalizer
Converts between objects with getter and setter methods and arrays.
The normalization process looks at all public methods and calls the ones which have a name starting with get and take no parameters. The result is a map from property names (method name stripped of the get prefix and converted to lower case) 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 setter method exists for any of the properties. If a setter exists it is called with the property value. No automatic denormalization of the value takes place.
Traits
SerializerAwareTrait | SerializerAware trait. |
Constants
CIRCULAR_REFERENCE_LIMIT | |
OBJECT_TO_POPULATE | |
GROUPS | |
ATTRIBUTES | |
ALLOW_EXTRA_ATTRIBUTES | |
ENABLE_MAX_DEPTH | |
DEPTH_KEY_PATTERN |
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.3/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.html