in src/Serializer.php [28:79]
private static function serializeXmlAny(\XMLWriter $writer, string $name, $value, ?string $format)
{
if ($value instanceof Model) {
self::serializeXmlModel($writer, $name, $value);
return;
}
if ($value instanceof \DateTimeInterface) {
$stamp = $value->getTimestamp();
if ($format == null) {
$format = 'iso8601';
}
switch ($format) {
case 'httptime':
$tval = gmdate('D, d M Y H:i:s \G\M\T', $stamp);
break;
case 'unixtime':
$tval = (string)$stamp;
break;
default:
$tval = gmdate('Y-m-d\TH:i:s\Z', $stamp);
}
$writer->startElement($name);
$writer->text($tval);
$writer->endElement();
return;
}
$type = \gettype($value);
// bool
if (\in_array($type, ['bool', 'boolean'])) {
$writer->startElement($name);
$writer->text($value === true ? 'true' : 'false');
$writer->endElement();
return;
}
// other primitive type
if (\in_array($type, ['int', 'integer', 'float', 'double', 'string'])) {
$writer->startElement($name);
$writer->text((string)$value);
$writer->endElement();
return;
}
// enum, since 8.1
// TODO
throw new SerializationExecption("Unsupport type " . \gettype($value));
}