in src/Serializer.php [81:125]
private static function serializeXmlModel(\XMLWriter $writer, string $name, Model $value): void
{
$ro = new \ReflectionObject($value);
if (empty($name)) {
$annotation = Functions::getXmlRootAnnotation($ro);
if ($annotation != null) {
$name = $annotation->name;
}
if (empty($name)) {
$name = \get_class($value);
if ($pos = \strrpos($name, '\\')) {
$name = \substr($name, $pos + 1);
}
}
}
// start element
$writer->startElement($name);
// children element
foreach ($ro->getProperties() as $property) {
$property->setAccessible(true);
$val = $property->getValue($value);
if (!isset($val)) {
continue;
}
$annotation = Functions::getXmlElementAnnotation($property);
if ($annotation == null) {
continue;
}
if (is_array($val)) {
foreach ($val as $vval) {
self::serializeXmlAny($writer, $annotation->rename, $vval, $annotation->format);
}
} else {
self::serializeXmlAny($writer, $annotation->rename, $val, $annotation->format);
}
}
// end element
$writer->endElement();
}