// Copyright (c) 1999,2000,2002 Edd Dumbill. // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of the "XML-RPC for PHP" nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED // OF THE POSSIBILITY OF SUCH DAMAGE. /****************************************************************************** * * *** 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. *****************************************************************************/ // the list is sorted more-or-less in dependency order include_once(__DIR__.'/../src/Exception.php'); include_once(__DIR__.'/../src/Exception/FaultResponseException.php'); include_once(__DIR__.'/../src/Exception/ParsingException.php'); include_once(__DIR__.'/../src/Exception/XmlException.php'); include_once(__DIR__.'/../src/Exception/XmlRpcException.php'); include_once(__DIR__.'/../src/Exception/TransportException.php'); include_once(__DIR__.'/../src/Exception/HttpException.php'); include_once(__DIR__.'/../src/Exception/ServerException.php'); include_once(__DIR__.'/../src/Exception/NoSuchMethodException.php'); include_once(__DIR__.'/../src/Exception/StateErrorException.php'); include_once(__DIR__.'/../src/Exception/TypeErrorException.php'); include_once(__DIR__.'/../src/Exception/ValueErrorException.php'); include_once(__DIR__.'/../src/PhpXmlRpc.php'); include_once(__DIR__.'/../src/Traits/CharsetEncoderAware.php'); include_once(__DIR__.'/../src/Traits/LoggerAware.php'); include_once(__DIR__.'/../src/Traits/DeprecationLogger.php'); include_once(__DIR__.'/../src/Traits/ParserAware.php'); include_once(__DIR__.'/../src/Traits/PayloadBearer.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/Interop.php'); include_once(__DIR__.'/../src/Helper/Logger.php'); include_once(__DIR__.'/../src/Helper/XMLParser.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'); 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 */ /** * @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); } } /** * @todo reinstate access to method parseResponseHeaders? */ class xmlrpcmsg extends Request { } class xmlrpcresp extends Response { } /** * @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 Charset::instance()->encodeEntities($data, $srcEncoding, $destEncoding); } function iso8601_encode($timeT, $utc=0) { return Date::iso8601Encode($timeT, $utc); } function iso8601_decode($iDate, $utc=0) { return Date::iso8601Decode($iDate, $utc); } function decode_chunked($buffer) { return Http::decodeChunked($buffer); } function php_xmlrpc_decode($xmlrpcVal, $options=array()) { $encoder = new Encoder(); return $encoder->decode($xmlrpcVal, $options); } function php_xmlrpc_encode($phpVal, $options=array()) { $encoder = new Encoder(); return $encoder->encode($phpVal, $options); } function php_xmlrpc_decode_xml($xmlVal, $options=array()) { $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 Charset::instance()->isValidCharset($encoding, $validList); }