Increase backwards compatibility with version 3: make ALL global vars available which...
authorgggeek <giunta.gaetano@gmail.com>
Mon, 6 Apr 2015 20:12:18 +0000 (21:12 +0100)
committergggeek <giunta.gaetano@gmail.com>
Mon, 6 Apr 2015 20:12:18 +0000 (21:12 +0100)
lib/xmlrpc.inc
src/Helper/Charset.php
src/Helper/XMLParser.php
src/PhpXmlRpc.php

index 9a9a589..1572279 100644 (file)
@@ -36,7 +36,7 @@
 
 /******************************************************************************
  *
- *** DEPRECATED ***
+ * *** DEPRECATED ***
  *
  * This file is only used to insure backwards compatibility
  * with the API of the library <= rev. 3
@@ -55,9 +55,26 @@ include_once(__DIR__.'/../src/Helper/Charset.php');
 include_once(__DIR__.'/../src/Helper/Http.php');
 include_once(__DIR__.'/../src/Helper/XMLParser.php');
 
+
 /* Expose the global variables which used to be defined */
 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
index d7670a1..5225c59 100644 (file)
@@ -237,4 +237,25 @@ class Charset
             return false;
         }
     }
+
+    /**
+     * Used only for backwards compatibility
+     * @deprecated
+     *
+     * @param string $charset
+     *
+     * @return array
+     *
+     * @throws \Exception for unknown/unsupported charsets
+     */
+    public function getEntities($charset)
+    {
+        switch ($charset)
+        {
+            case 'iso88591':
+                return $this->xml_iso88591_Entities;
+            default:
+                throw new \Exception('Unsupported charset: ' . $charset);
+        }
+    }
 }
index 91b686a..e11d233 100644 (file)
@@ -439,4 +439,5 @@ class XMLParser
 
         return true;
     }
+
 }
index dff3896..7de98c0 100644 (file)
@@ -95,10 +95,25 @@ class PhpXmlRpc
             $GLOBALS[$name] = $value;
         }
 
+        // NB: all the variables exported into the global namespace below here do NOT guarantee 100%
+        // compatibility, as they are NOT reimported back during calls to importGlobals()
+        
         $reflection = new \ReflectionClass('PhpXmlRpc\Value');
         foreach ($reflection->getStaticProperties() as $name => $value) {
             $GLOBALS[$name] = $value;
         }
+
+        $parser = new Helper\XMLParser();
+        $reflection = new \ReflectionClass('PhpXmlRpc\Helper\XMLParser');
+        foreach ($reflection->getProperties(\ReflectionProperty::IS_PUBLIC) as $name => $value) {
+            if (in_array($value->getName(), array('xmlrpc_valid_parents')))
+            {
+                $GLOBALS[$value->getName()] = $value->getValue($parser);
+            }
+        }
+
+        $charset = Helper\Charset::instance();
+        $GLOBALS['xml_iso88591_Entities'] = $charset->getEntities('iso88591');
     }
 
     /**