A helper providing autocompletion for available AbstractNormalizer options.

public toArray() : array
  • return array<string,mixed>
public withAllowExtraAttributes(?bool $allowExtraAttributes) : static

If AbstractNormalizer::ATTRIBUTES are specified, and the source has fields that are not part of that list, configures whether to ignore those attributes or throw an ExtraAttributesException.

public withAttributes(?array $attributes) : static

Configures attributes to (de)normalize.

For nested structures, this list needs to reflect the object tree.

Eg: ['foo', 'bar', 'object' => ['baz']]

  • param (string|array)[]|null $attributes
  • throws \InvalidArgumentException
public withCallbacks(?array $callbacks) : static

Configures an hashmap of field name => callable to normalize this field.

The callable is called if the field is encountered with the arguments:

  • mixed $attributeValue value of this field
  • object $object the whole object being normalized
  • string $attributeName name of the attribute being normalized
  • string $format the requested format
  • array<string, mixed> $context the serialization context
  • param array<string,callable>|null $callbacks
public withCircularReferenceHandler(?callable $circularReferenceHandler) : static

Configures an handler to call when a circular reference has been detected.

If no handler is specified, a CircularReferenceException is thrown.

The method will be called with ($object, $format, $context) and its return value is returned as the result of the normalize call.

public withCircularReferenceLimit(?int $circularReferenceLimit) : static

Configures how many loops of circular reference to allow while normalizing.

The value 1 means that when we encounter the same object a second time, we consider that a circular reference.

You can raise this value for special cases, e.g. in combination with the max depth setting of the object normalizer.

Must be strictly positive.

  • param positive-int|null $circularReferenceLimit
public withContext(Symfony\Component\Serializer\Context\ContextBuilderInterface|array $context) : static
  • param \ContextBuilderInterface|array<string,mixed> $context
public withDefaultContructorArguments(?array $defaultContructorArguments) : static

Configures an hashmap of classes containing hashmaps of constructor argument => default value.

The names need to match the parameter names in the constructor arguments.

Eg: [Foo::class => ['foo' => true, 'bar' => 0]]

  • param array<class-string,array<string,mixed>>|null $defaultContructorArguments
public withGroups(array|string|?null $groups) : static

Configures groups containing attributes to (de)normalize.

Eg: ['group1', 'group2']

  • param list<string>|string|null $groups
public withIgnoredAttributes(?array $ignoredAttributes) : static

Configures attributes to be skipped when normalizing an object tree.

This list is applied to each element of nested structures.

Eg: ['foo', 'bar']

Note: The behaviour for nested structures is different from ATTRIBUTES for historical reason. Aligning the behaviour would be a BC break.

  • param list<string>|null $ignoredAttributes
public withObjectToPopulate(?object $objectToPopulate) : static

Configures an object to be updated instead of creating a new instance.

If you have a nested structure, child objects will be overwritten with new instances unless you set AbstractObjectNormalizer::DEEP_OBJECT_TO_POPULATE to true.

public withRequireAllProperties(?bool $requireAllProperties = true) : static

Configures requiring all properties to be listed in the input instead of falling back to null for nullable ones.

protected with(string $key, ?mixed $value) : static
private array $context = []
  • var array<string,mixed>
© 2024 Bruce Wells
Search Namespaces \ Classes