Documentation

functions.php

Table of Contents

enum()  : mixed
The 'enum' serializer writes simple list of elements.
valueObject()  : mixed
The valueObject serializer turns a simple PHP object into a classname.
repeatingElements()  : mixed
This serializer helps you serialize xml structures that look like this:.
standardSerializer()  : mixed
This function is the 'default' serializer that is able to serialize most things, and delegates to other serializers if needed.

Functions

enum()

The 'enum' serializer writes simple list of elements.

enum(Writer $writer, array<string|int, string> $values) : mixed

For example, calling:

enum($writer, [ "{http://sabredav.org/ns}elem1", "{http://sabredav.org/ns}elem2", "{http://sabredav.org/ns}elem3", "{http://sabredav.org/ns}elem4", "{http://sabredav.org/ns}elem5", ]);

Will generate something like this (if the correct namespace is declared):

<s:elem1 /> <s:elem2 /> <s:elem3 /> <s:elem4>content</s:elem4> <s:elem5 attr="val" />

Parameters
$writer : Writer
$values : array<string|int, string>
Return values
mixed

valueObject()

The valueObject serializer turns a simple PHP object into a classname.

valueObject(Writer $writer, object $valueObject, string $namespace) : mixed

Every public property will be encoded as an xml element with the same name, in the XML namespace as specified.

Values that are set to null or an empty array are not serialized. To serialize empty properties, you must specify them as an empty string.

Parameters
$writer : Writer
$valueObject : object
$namespace : string
Return values
mixed

repeatingElements()

This serializer helps you serialize xml structures that look like this:.

repeatingElements(Writer $writer, array<string|int, mixed> $items, string $childElementName) : mixed
... ... ...

In that previous example, this serializer just serializes the item element, and this could be called like this:

repeatingElements($writer, $items, '}item');

Parameters
$writer : Writer
$items : array<string|int, mixed>
$childElementName : string
Return values
mixed

standardSerializer()

This function is the 'default' serializer that is able to serialize most things, and delegates to other serializers if needed.

standardSerializer(Writer $writer, string|int|float|bool|array<string|int, mixed>|object $value) : mixed

The standardSerializer supports a wide-array of values.

$value may be a string or integer, it will just write out the string as text. $value may be an instance of XmlSerializable or Element, in which case it calls it's xmlSerialize() method. $value may be a PHP callback/function/closure, in case we call the callback and give it the Writer as an argument. $value may be a an object, and if it's in the classMap we automatically call the correct serializer for it. $value may be null, in which case we do nothing.

If $value is an array, the array must look like this:

[ [ 'name' => '{namespaceUri}element-name', 'value' => '...', 'attributes' => [ 'attName' => 'attValue' ] ] [, 'name' => '{namespaceUri}element-name2', 'value' => '...', ] ]

This would result in xml like:

... ...

The value property may be any value standardSerializer supports, so you can nest data-structures this way. Both value and attributes are optional.

Alternatively, you can also specify the array using this syntax:

[ [ '{namespaceUri}element-name' => '...', '{namespaceUri}element-name2' => '...', ] ]

This is excellent for simple key->value structures, and here you can also specify anything for the value.

You can even mix the two array syntaxes.

Parameters
$writer : Writer
$value : string|int|float|bool|array<string|int, mixed>|object
Return values
mixed

Search results