Move deprecated methods into the compatibility classes, out of the main library classes
[plcapi.git] / lib / xmlrpc.inc
index 8f08127..51b175d 100644 (file)
@@ -62,10 +62,75 @@ PhpXmlRpc\PhpXmlRpc::exportGlobals();
 
 class xmlrpcval extends PhpXmlRpc\Value
 {
+    /**
+     * @deprecated
+     * @param xmlrpcval $o
+     * @return string
+     */
+    public function serializeval($o)
+    {
+        // add check? slower, but helps to avoid recursion in serializing broken xmlrpcvals...
+        //if (is_object($o) && (get_class($o) == 'xmlrpcval' || is_subclass_of($o, 'xmlrpcval')))
+        //{
+        $ar = $o->me;
+        reset($ar);
+        list($typ, $val) = each($ar);
+
+        return '<value>' . $this->serializedata($typ, $val) . "</value>\n";
+        //}
+    }
+
+    /**
+     * @deprecated this code looks like it is very fragile and has not been fixed
+     * for a long long time. Shall we remove it for 2.0?
+     */
+    public function getval()
+    {
+        // UNSTABLE
+        reset($this->me);
+        list($a, $b) = each($this->me);
+        // contributed by I Sofer, 2001-03-24
+        // add support for nested arrays to scalarval
+        // i've created a new method here, so as to
+        // preserve back compatibility
+
+        if (is_array($b)) {
+            @reset($b);
+            while (list($id, $cont) = @each($b)) {
+                $b[$id] = $cont->scalarval();
+            }
+        }
+
+        // add support for structures directly encoding php objects
+        if (is_object($b)) {
+            $t = get_object_vars($b);
+            @reset($t);
+            while (list($id, $cont) = @each($t)) {
+                $t[$id] = $cont->scalarval();
+            }
+            @reset($t);
+            while (list($id, $cont) = @each($t)) {
+                @$b->$id = $cont;
+            }
+        }
+        // end contrib
+        return $b;
+    }
+
 }
 
 class xmlrpcmsg extends PhpXmlRpc\Request
 {
+    /**
+     * Kept the old name even if Request class was renamed, for compatibility.
+     * @deprecated
+     *
+     * @return string
+     */
+    public function kindOf()
+    {
+        return 'msg';
+    }
 }
 
 class xmlrpcresp extends PhpXmlRpc\Response