コード例 #1
0
ファイル: JsonSerializer.php プロジェクト: recipe/scalr
 /**
  * @param string $xmlString
  * @return Scalr_Messaging_Msg
  */
 function unserialize($jsonString)
 {
     $msg = @json_decode($jsonString);
     $ref = new ReflectionClass(Scalr_Messaging_Msg::getClassForName($msg->name));
     $retval = $ref->newInstance();
     $retval->messageId = "{$msg->id}";
     $retval->meta = (array) $msg->meta;
     $this->walkSerialize($msg->body, $retval, 'camelCase');
     return $retval;
 }
コード例 #2
0
 /**
  * @param string $xmlString
  * @return Scalr_Messaging_Msg
  */
 function unserialize($xmlString)
 {
     $xml = simplexml_load_string($xmlString);
     if (!$xml) {
         throw new Exception('Cannot load XML string: ' . $xmlString);
     }
     $ref = new ReflectionClass(Scalr_Messaging_Msg::getClassForName($xml->attributes()->name));
     $msg = $ref->newInstance();
     $msg->messageId = "{$xml->attributes()->id}";
     foreach ($xml->meta->children() as $el) {
         $msg->meta["{$el->getName()}"] = "{$el}";
     }
     foreach ($xml->body->children() as $el) {
         $msg->{$this->camelCase("{$el->getName()}")} = $this->walkUnserialize($el);
     }
     return $msg;
 }