X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fxmlrpc.inc;h=80594055e43ed348f889983b6b1b1959d2455f35;hb=5d63c263e763338952815b6724ffa4469061afc4;hp=57a0adc41d6ca1884ce41da894eb708c8f3bcaee;hpb=e2ef0823a57f66ef5260006a2d08528428457c84;p=plcapi.git diff --git a/lib/xmlrpc.inc b/lib/xmlrpc.inc index 57a0adc..8059405 100644 --- a/lib/xmlrpc.inc +++ b/lib/xmlrpc.inc @@ -36,86 +36,202 @@ /****************************************************************************** * - *** 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. + * + * NB: including this file will also alter the library configuration setting the + * expected charset encoding used by the app to ISO-8859-1. Please see the + * file api_changes_v4.md for how to change this if required. *****************************************************************************/ +include_once(__DIR__.'/../src/Client.php'); +include_once(__DIR__.'/../src/Encoder.php'); include_once(__DIR__.'/../src/PhpXmlRpc.php'); -include_once(__DIR__.'/../src/Value.php'); 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/Value.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'); + +use PhpXmlRpc\Client; +use PhpXmlRpc\Encoder; +use PhpXmlRpc\Request; +use PhpXmlRpc\Response; +use PhpXmlRpc\Value; +use PhpXmlRpc\Helper\Charset; +use PhpXmlRpc\Helper\Date; +use PhpXmlRpc\Helper\Http; +use PhpXmlRpc\Helper\XMLParser; /* 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 +/** + * @todo reinstate access to method serializedata ? + */ +class xmlrpcval extends 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; + $val = reset($ar); + $typ = key($ar); + + return '' . $this->serializedata($typ, $val) . "\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 + $b = reset($this->me); + $a = key($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)) { + foreach($b as $id => $cont) { + $b[$id] = $cont->scalarval(); + } + } + + // add support for structures directly encoding php objects + if (is_object($b)) { + $t = get_object_vars($b); + foreach($t as $id => $cont) { + $t[$id] = $cont->scalarval(); + } + foreach($t as $id => $cont) { + @$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 +/** + * @todo reinstate access to method parseResponseHeaders ? + */ +class xmlrpcmsg extends Request { } -class xmlrpcresp extends PhpXmlRpc\Response +class xmlrpcresp extends Response { } -class xmlrpc_client extends PhpXmlRpc\Client +/** + * @todo reinstate access to methods sendPayloadHTTP10, sendPayloadHTTPS, sendPayloadCURL, _try_multicall ? + */ +class xmlrpc_client extends 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 Charset::instance()->encodeEntities($data, $srcEncoding, $destEncoding); } function iso8601_encode($timeT, $utc=0) { - return PhpXmlRpc\Helper\Date::iso8601_encode($timeT, $utc); + return Date::iso8601Encode($timeT, $utc); } function iso8601_decode($iDate, $utc=0) { - return PhpXmlRpc\Helper\Date::iso8601_decode($iDate, $utc); + return Date::iso8601Decode($iDate, $utc); } function decode_chunked($buffer) { - return PhpXmlRpc\Helper\Http::decode_chunked($buffer); + return Http::decodeChunked($buffer); } function php_xmlrpc_decode($xmlrpcVal, $options=array()) { - $encoder = new PhpXmlRpc\Encoder(); + $encoder = new Encoder(); return $encoder->decode($xmlrpcVal, $options); } function php_xmlrpc_encode($phpVal, $options=array()) { - $encoder = new PhpXmlRpc\Encoder(); + $encoder = new Encoder(); return $encoder->encode($phpVal, $options); } function php_xmlrpc_decode_xml($xmlVal, $options=array()) { - $encoder = new PhpXmlRpc\Encoder(); - return $encoder->decode_xml($xmlVal, $options); + $encoder = new Encoder(); + return $encoder->decodeXml($xmlVal, $options); } function guess_encoding($httpHeader='', $xmlChunk='', $encodingPrefs=null) { + return XMLParser::guessEncoding($httpHeader, $xmlChunk, $encodingPrefs); +} + +function has_encoding($xmlChunk) +{ + return 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 Charset::instance()->isValidCharset($encoding, $validList); +}