AbstractNormalizer
abstract class AbstractNormalizer implements NormalizerInterface, DenormalizerInterface, SerializerAwareInterface, CacheableSupportsMethodInterface
Normalizer implementation.
Traits
Constants
CIRCULAR_REFERENCE_LIMIT | |
OBJECT_TO_POPULATE | |
GROUPS | |
ATTRIBUTES | |
ALLOW_EXTRA_ATTRIBUTES | |
DEFAULT_CONSTRUCTOR_ARGUMENTS | |
Properties
Methods
object|null | extractObjectToPopulate(string $class, array $context, string $key = null) Extract the object_to_populate field from the context if it exists and is an instance of the provided $class. | from ObjectToPopulateTrait |
| setSerializer(SerializerInterface $serializer) Sets the serializer. | from SerializerAwareTrait |
| __construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null) Sets the {@link ClassMetadataFactoryInterface} to use. | |
AbstractNormalizer | setCircularReferenceLimit(int $circularReferenceLimit) Set circular reference limit. | |
AbstractNormalizer | setCircularReferenceHandler(callable $circularReferenceHandler) Set circular reference handler. | |
AbstractNormalizer | setCallbacks(array $callbacks) Set normalization callbacks. | |
AbstractNormalizer | setIgnoredAttributes(array $ignoredAttributes) Set ignored attributes for normalization and denormalization. | |
bool | hasCacheableSupportsMethod() | |
bool | isCircularReference(object $object, array $context) Detects if the configured circular reference limit is reached. | |
mixed | handleCircularReference(object $object) Handles a circular reference. | |
string[]|AttributeMetadataInterface[]|bool | getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false) Gets attributes to normalize using groups. | |
bool | isAllowedAttribute(object|string $classOrObject, string $attribute, string|null $format = null, array $context = array()) Is this attribute allowed? | |
array | prepareForDenormalization(object|array $data) Normalizes the given data to an array. It's particularly useful during the denormalization process. | |
ReflectionMethod|null | getConstructor(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes) Returns the method to use to construct an object. This method must be either the object constructor or static. | |
object | instantiateObject(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes, string $format = null) Instantiates an object using constructor parameters when needed. | |
array | createChildContext(array $parentContext, string $attribute) | |
Details
Extract the object_to_populate
field from the context if it exists and is an instance of the provided $class.
Parameters
string | $class | The class the object should be |
array | $context | The denormalization context |
string | $key | They in which to look for the object to populate. Keeps backwards compatibility with AbstractNormalizer . |
Return Value
object|null | an object if things check out, null otherwise |
Sets the serializer.
Parameters
Sets the {@link ClassMetadataFactoryInterface} to use.
Parameters
AbstractNormalizer
setCircularReferenceLimit(int $circularReferenceLimit)
Set circular reference limit.
Parameters
int | $circularReferenceLimit | Limit of iterations for the same object |
Return Value
AbstractNormalizer
setCircularReferenceHandler(callable $circularReferenceHandler)
Set circular reference handler.
Parameters
callable | $circularReferenceHandler | |
Return Value
Set normalization callbacks.
Parameters
array | $callbacks | Help normalize the result |
Return Value
Exceptions
AbstractNormalizer
setIgnoredAttributes(array $ignoredAttributes)
Set ignored attributes for normalization and denormalization.
Parameters
Return Value
bool
hasCacheableSupportsMethod()
Return Value
protected bool
isCircularReference(object $object, array $context)
Detects if the configured circular reference limit is reached.
Parameters
object | $object | |
array | $context | |
Return Value
Exceptions
protected mixed
handleCircularReference(object $object)
Handles a circular reference.
If a circular reference handler is set, it will be called. Otherwise, a {@class CircularReferenceException} will be thrown.
Parameters
Return Value
Exceptions
protected string[]|AttributeMetadataInterface[]|bool
getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)
Gets attributes to normalize using groups.
Parameters
string|object | $classOrObject | |
array | $context | |
bool | $attributesAsString | If false, return an array of {@link AttributeMetadataInterface} |
Return Value
Exceptions
LogicException | if the 'allow_extra_attributes' context variable is false and no class metadata factory is provided |
protected bool
isAllowedAttribute(object|string $classOrObject, string $attribute, string|null $format = null, array $context = array())
Is this attribute allowed?
Parameters
object|string | $classOrObject | |
string | $attribute | |
string|null | $format | |
array | $context | |
Return Value
protected array
prepareForDenormalization(object|array $data)
Normalizes the given data to an array. It's particularly useful during the denormalization process.
Parameters
Return Value
protected ReflectionMethod|null
getConstructor(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes)
Returns the method to use to construct an object. This method must be either the object constructor or static.
Parameters
array | $data | |
string | $class | |
array | $context | |
ReflectionClass | $reflectionClass | |
array|bool | $allowedAttributes | |
Return Value
protected object
instantiateObject(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes, string $format = null)
Instantiates an object using constructor parameters when needed.
This method also allows to denormalize data into an existing object if it is present in the context with the object_to_populate. This object is removed from the context before being returned to avoid side effects when recursively normalizing an object graph.
Parameters
array | $data | |
string | $class | |
array | $context | |
ReflectionClass | $reflectionClass | |
array|bool | $allowedAttributes | |
string | $format | |
Return Value
Exceptions
protected array
createChildContext(array $parentContext, string $attribute)
Parameters
array | $parentContext | |
string | $attribute | |
Return Value