From: gggeek Date: Mon, 6 Apr 2015 20:12:18 +0000 (+0100) Subject: Increase backwards compatibility with version 3: make ALL global vars available which... X-Git-Tag: 4.0.0-alpha^2~109 X-Git-Url: http://git.onelab.eu/?p=plcapi.git;a=commitdiff_plain;h=5be54109b83d6a77f3a2804e7520db9662c53002 Increase backwards compatibility with version 3: make ALL global vars available which were there before --- diff --git a/lib/xmlrpc.inc b/lib/xmlrpc.inc index 9a9a589..1572279 100644 --- a/lib/xmlrpc.inc +++ b/lib/xmlrpc.inc @@ -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 diff --git a/src/Helper/Charset.php b/src/Helper/Charset.php index d7670a1..5225c59 100644 --- a/src/Helper/Charset.php +++ b/src/Helper/Charset.php @@ -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); + } + } } diff --git a/src/Helper/XMLParser.php b/src/Helper/XMLParser.php index 91b686a..e11d233 100644 --- a/src/Helper/XMLParser.php +++ b/src/Helper/XMLParser.php @@ -439,4 +439,5 @@ class XMLParser return true; } + } diff --git a/src/PhpXmlRpc.php b/src/PhpXmlRpc.php index dff3896..7de98c0 100644 --- a/src/PhpXmlRpc.php +++ b/src/PhpXmlRpc.php @@ -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'); } /**