private function appendImageNode(DOMDocument $doc, DOMElement $parent, Image $image = null) { if (null === $image) { return; } $imageNode = $doc->createField('image'); foreach (self::$imageFields as $field) { $value = call_user_func(array($image, 'get' . ucfirst($field))); if (null !== $value) { $fieldNode = $doc->createElement($field); $fieldNode->appendChild($doc->createTextNode($value)); $imageNode->appendChild($fieldNode); } } if ($imageNode->hasChildNodes()) { $parent->appendChild($imageNode); } }