Beispiel #1
0
 /**
  * Convert value to string
  *
  * Convert passed value to a valid php string
  *
  * @param string     $name
  * @param mixed      $value
  * @param AeXml_Node $node
  *
  * @return string
  */
 protected function _valueToString($name, $value, AeInterface_Xml_Element $element)
 {
     if ($value instanceof AeType) {
         $value = $value->getValue();
     }
     if (is_numeric($name)) {
         $child = $element->addChild('key')->setAttributes(array('key-name' => $name, 'key-type' => AeType::of($name)));
     } else {
         $child = $element->addChild($name);
     }
     if (is_array($value)) {
         foreach ($value as $k => $v) {
             $this->_valueToString($k, $v, $child);
         }
     } else {
         if (is_object($value)) {
             $child->setAttribute('type', 'object');
             $value = serialize($value);
             $value = str_replace('&', '&', $value);
             $value = str_replace(chr(0), '&null;', $value);
             $child->setData($value);
         } else {
             $child->setAttribute('type', AeType::of($value));
             if (is_bool($value)) {
                 $value = $value ? 'true' : 'false';
             }
             if (!is_null($value)) {
                 $child->setData($value);
             }
         }
     }
     return $child;
 }