remove from the phpxmlrpcval class the support for arrayiterator and countable, in...
[plcapi.git] / lib / xmlrpc.inc
index c706758..28b47d3 100644 (file)
 
 /******************************************************************************
  *
- *** DEPRECATED ***
+ * *** DEPRECATED ***
  *
  * This file is only used to insure backwards compatibility
  * with the API of the library <= rev. 3
+ *
+ * If it is included, the library will work without any further autoloading
  *****************************************************************************/
 
 include_once(__DIR__.'/../src/PhpXmlRpc.php');
@@ -48,11 +50,102 @@ include_once(__DIR__.'/../src/Request.php');
 include_once(__DIR__.'/../src/Response.php');
 include_once(__DIR__.'/../src/Client.php');
 include_once(__DIR__.'/../src/Encoder.php');
+include_once(__DIR__.'/../src/Helper/Charset.php');
+include_once(__DIR__.'/../src/Helper/Date.php');
+include_once(__DIR__.'/../src/Helper/Http.php');
+include_once(__DIR__.'/../src/Helper/Logger.php');
+include_once(__DIR__.'/../src/Helper/XMLParser.php');
+
+
+/* Expose the global variables which used to be defined */
+PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'ISO-8859-1'; // old default
+PhpXmlRpc\PhpXmlRpc::exportGlobals();
+
+/* some stuff deprecated enough that we do not want to put it in the new lib version */
+
+/// @deprecated
+$GLOBALS['xmlEntities'] = array(
+    'amp'  => '&',
+    'quot' => '"',
+    'lt'   => '<',
+    'gt'   => '>',
+    'apos' => "'"
+);
+
+// formulate backslashes for escaping regexp
+// Not in use anymore since 2.0. Shall we remove it?
+/// @deprecated
+$GLOBALS['xmlrpc_backslash'] = chr(92).chr(92);
 
 /* Expose with the old names the classes which have been namespaced */
 
 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;
+    }
+
+    /// reset functionality added by parent class: same as it would happen if no interface was declared
+    public function count()
+    {
+        return 1;
+    }
+
+    /// reset functionality added by parent class: same as it would happen if no interface was declared
+    public function getIterator() {
+        return new ArrayIterator($this);
+    }
 }
 
 class xmlrpcmsg extends PhpXmlRpc\Request
@@ -69,24 +162,25 @@ class xmlrpc_client extends PhpXmlRpc\Client
 
 /* Expose as global functions the ones which are now class methods */
 
+/// Wrong speling, but we are adamant on backwards compatibility!
 function xmlrpc_encode_entitites($data, $srcEncoding='', $destEncoding='')
 {
-    return PhpXmlRpc\Helper\Charset::instance()->encode_entitites($data, $srcEncoding, $destEncoding);
+    return PhpXmlRpc\Helper\Charset::instance()->encodeEntitites($data, $srcEncoding, $destEncoding);
 }
 
 function iso8601_encode($timeT, $utc=0)
 {
-    return PhpXmlRpc\Helper\Date::iso8601_encode($timeT, $utc);
+    return PhpXmlRpc\Helper\Date::iso8601Encode($timeT, $utc);
 }
 
 function iso8601_decode($iDate, $utc=0)
 {
-    return PhpXmlRpc\Helper\Date::iso8601_decode($iDate, $utc);
+    return PhpXmlRpc\Helper\Date::iso8601Decode($iDate, $utc);
 }
 
 function decode_chunked($buffer)
 {
-    return PhpXmlRpc\Helper\Http::decode_chunked($buffer);
+    return PhpXmlRpc\Helper\Http::decodeChunked($buffer);
 }
 
 function php_xmlrpc_decode($xmlrpcVal, $options=array())
@@ -104,14 +198,20 @@ function php_xmlrpc_encode($phpVal, $options=array())
 function php_xmlrpc_decode_xml($xmlVal, $options=array())
 {
     $encoder = new PhpXmlRpc\Encoder();
-    return $encoder->decode_xml($xmlVal, $options);
+    return $encoder->decodeXml($xmlVal, $options);
 }
 
 function guess_encoding($httpHeader='', $xmlChunk='', $encodingPrefs=null)
 {
+    return PhpXmlRpc\Helper\XMLParser::guessEncoding($httpHeader, $xmlChunk, $encodingPrefs);
+}
+
+function has_encoding($xmlChunk)
+{
+    return PhpXmlRpc\Helper\XMLParser::hasEncoding($xmlChunk);
 }
 
 function is_valid_charset($encoding, $validList)
 {
-    return PhpXmlRpc\Helper\Charset::instance()->is_valid_charset($encoding, $validList);
-}
\ No newline at end of file
+    return PhpXmlRpc\Helper\Charset::instance()->isValidCharset($encoding, $validList);
+}