Bump requirements to 5.1.0; grammar fixes in comments
authorgggeek <giunta.gaetano@gmail.com>
Mon, 3 Feb 2014 22:36:57 +0000 (23:36 +0100)
committergggeek <giunta.gaetano@gmail.com>
Mon, 3 Feb 2014 22:36:57 +0000 (23:36 +0100)
ChangeLog
INSTALL
composer.json
lib/xmlrpc.inc
lib/xmlrpc_wrappers.inc
lib/xmlrpcs.inc
test/verify_compat.php

index 48a7305..2c6dda7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,15 @@
+2014-02-3 - G. Giunta (giunta.gaetano@gmail.com)\r
+\r
+       * bumped up requirements to php 5.1.0\r
+\r
 2014-01-10 - G. Giunta (giunta.gaetano@gmail.com)\r
 \r
        * xmlrpc.inc: when using curl and keepalive, reset curl handle if we did not get back an http 200 response (eg a 302)\r
 \r
        * testsuite.php, parse_args.php: update testsuite\r
 \r
+       * debugger/controller.php: change default path to javascript debugger\r
+\r
 2010-05-23 - G. Giunta (giunta.gaetano@gmail.com)\r
 \r
        * xmlrpc.inc: omit port on http 'Host' header if it is 80;\r
diff --git a/INSTALL b/INSTALL
index 87ac013..2a39bdf 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Requirements
 ------------\r
 \r
 The following requirements should be met prior to using 'XMLRPC for PHP': \r
-. PHP 5.0 or later; 5.0.3 or later recommended to have all functionality enabled\r
+. PHP 5.1.0 or later\r
 . the php "curl" extension is needed if you wish to use SSL or HTTP 1.1 to\r
   communicate with remote servers\r
 \r
index 819d668..7252e17 100644 (file)
@@ -2,8 +2,11 @@
     "name": "phpxmlrpc/phpxmlrpc",
     "description": "A php library for building xmlrpc clients and servers",
     "license": "BSD-3-Clause",
-    "homepage": "http://phpxmlrpc.sourceforge.net/",
+    "homepage": "http://gggeek.github.io/phpxmlrpc/",
     "keywords": [ "xmlrpc", "webservices" ],
+    "require": {
+        "php": ">=5.1.0"
+    }
     "autoload": {
         "classmap": [ "lib/xmlrpc.inc", "lib/xmlrpcs.inc" ]
     }
index c3c8995..aeaf4be 100644 (file)
 \r
                /**\r
                * Enables/disables the echoing to screen of the xmlrpc responses received\r
-               * @param integer $debug values 0, 1 and 2 are supported (2 = echo sent msg too, before received response)\r
+               * @param integer $in values 0, 1 and 2 are supported (2 = echo sent msg too, before received response)\r
                * @access public\r
                */\r
                function setDebug($in)\r
 \r
                /**\r
                * Add a CA certificate to verify server with (see man page about\r
-               * CURLOPT_CAINFO for more details\r
+               * CURLOPT_CAINFO for more details)\r
                * @param string $cacert certificate file name (or dir holding certificates)\r
                * @param bool $is_dir set to true to indicate cacert is a dir. defaults to false\r
                * @access public\r
                /**\r
                * Directly set cURL options, for extra flexibility\r
                * It allows eg. to bind client to a specific IP interface / address\r
-               * @param $options array\r
+               * @param array $options\r
                */\r
                function SetCurlOptions( $options )\r
                {\r
                        }\r
                        else\r
                        {\r
-                               // reset errno and errstr on succesful socket connection\r
+                               // reset errno and errstr on successful socket connection\r
                                $this->errstr = '';\r
                        }\r
                        // G. Giunta 2005/10/24: close socket before parsing.\r
-                       // should yeld slightly better execution times, and make easier recursive calls (e.g. to follow http redirects)\r
+                       // should yield slightly better execution times, and make easier recursive calls (e.g. to follow http redirects)\r
                        $ipd='';\r
                        do\r
                        {\r
                        // return the header too\r
                        curl_setopt($curl, CURLOPT_HEADER, 1);\r
 \r
-                       // will only work with PHP >= 5.0\r
                        // NB: if we set an empty string, CURL will add http header indicating\r
                        // ALL methods it is supporting. This is possibly a better option than\r
                        // letting the user tell what curl can / cannot do...\r
                * @param array $msgs an array of xmlrpcmsg objects\r
                * @param integer $timeout connection timeout (in seconds)\r
                * @param string $method the http protocol variant to be used\r
-               * @param boolean fallback When true, upon receiveing an error during multicall, multiple single calls will be attempted\r
+               * @param boolean fallback When true, upon receiving an error during multicall, multiple single calls will be attempted\r
                * @return array\r
                * @access public\r
                */\r
                * with attributes being e.g. 'expires', 'path', domain'.\r
                * NB: cookies sent as 'expired' by the server (i.e. with an expiry date in the past)\r
                * are still present in the array. It is up to the user-defined code to decide\r
-               * how to use the received cookies, and wheter they have to be sent back with the next\r
+               * how to use the received cookies, and whether they have to be sent back with the next\r
                * request to the server (using xmlrpc_client::setCookie) or not\r
                * @return array array of cookies received from the server\r
                * @access public\r
@@ -2115,7 +2114,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
 \r
                /**\r
                * @param string $meth the name of the method to invoke\r
-               * @param array $pars array of parameters to be paased to the method (xmlrpcval objects)\r
+               * @param array $pars array of parameters to be passed to the method (xmlrpcval objects)\r
                */\r
                function xmlrpcmsg($meth, $pars=0)\r
                {\r
@@ -2199,6 +2198,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
 \r
                /**\r
                * Returns xml representation of the message. XML prologue included\r
+               * @param string $charset_encoding\r
                * @return string the xml representation of the message, xml prologue included\r
                * @access public\r
                */\r
@@ -2252,6 +2252,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
                *      infinite loop in that case, because we cannot trust the caller\r
                *      to give us a valid pointer to an open file...\r
                * @access public\r
+               * @param resource $fp stream pointer\r
                * @return xmlrpcresp\r
                * @todo add 2nd & 3rd param to be passed to ParseResponse() ???\r
                */\r
@@ -3081,7 +3082,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
                }\r
 \r
                /**\r
-               * Checks wheter a struct member with a given name is present.\r
+               * Checks whether a struct member with a given name is present.\r
                * Works only on xmlrpcvals of type struct.\r
                * @param string $m the name of the struct member to be looked up\r
                * @return boolean\r
@@ -3680,9 +3681,10 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
        * we SHOULD assume it is strictly US-ASCII. But we try to be more tolerant of unconforming (legacy?) clients/servers,\r
        * which will be most probably using UTF-8 anyway...\r
        *\r
-       * @param string $httpheaders the http Content-type header\r
+       * @param string $httpheader the http Content-type header\r
        * @param string $xmlchunk xml content buffer\r
        * @param string $encoding_prefs comma separated list of character encodings to be used as default (when mb extension is enabled)\r
+       * @return string\r
        *\r
        * @todo explore usage of mb_http_input(): does it detect http headers + post data? if so, use it instead of hand-detection!!!\r
        */\r
@@ -3775,6 +3777,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
        * if it is a valid subset of any encoding in the list\r
        * @param string $encoding charset to be tested\r
        * @param mixed $validlist comma separated list of valid charsets (or array of charsets)\r
+       * @return bool\r
        */\r
        function is_valid_charset($encoding, $validlist)\r
        {\r
@@ -3795,7 +3798,7 @@ xmlrpc_encode_entitites($this->errstr, $GLOBALS['xmlrpc_internalencoding'], $cha
                                foreach ($validlist as $allowed)\r
                                        if (in_array($allowed, $charset_supersets[$encoding]))\r
                                                return true;\r
-                               return false;\r
+                       return false;\r
                }\r
        }\r
 \r
index 4a92348..1fbf5ce 100644 (file)
        * carried out by the lib, while datetime vals are passed around as strings)\r
        *\r
        * Known limitations:\r
-       * - requires PHP 5.0.3 +\r
        * - only works for user-defined functions, not for PHP internal functions\r
        *   (reflection does not support retrieving number/type of params for those)\r
        * - functions returning php objects will generate special xmlrpc responses:\r
                $decode_php_objects = isset($extra_options['decode_php_objs']) ? (bool)$extra_options['decode_php_objs'] : false;\r
                $catch_warnings = isset($extra_options['suppress_warnings']) && $extra_options['suppress_warnings'] ? '@' : '';\r
 \r
-               if(version_compare(phpversion(), '5.0.3') == -1)\r
-               {\r
-                       // up to php 5.0.3 some useful reflection methods were missing\r
-                       error_log('XML-RPC: cannot not wrap php functions unless running php version bigger than 5.0.3');\r
-                       return false;\r
-               }\r
-\r
-        $exists = false;\r
+               $exists = false;\r
            if (is_string($funcname) && strpos($funcname, '::') !== false)\r
            {\r
                $funcname = explode('::', $funcname);\r
                 $plainfuncname = get_class($funcname[0]) . '->' . $funcname[1];\r
             }\r
             $exists = method_exists($funcname[0], $funcname[1]);\r
-            if (!$exists && version_compare(phpversion(), '5.1') < 0)\r
-            {\r
-               // workaround for php 5.0: static class methods are not seen by method_exists\r
-               $exists = is_callable( $funcname );\r
-            }\r
         }\r
         else\r
         {\r
                                error_log('XML-RPC: method to be wrapped is the constructor: '.$plainfuncname);\r
                                return false;\r
                        }\r
-                           // php 503 always says isdestructor = true...\r
-                if( version_compare(phpversion(), '5.0.3') != 0 && $func->isDestructor())\r
+                if($func->isDestructor())\r
                        {\r
                                error_log('XML-RPC: method to be wrapped is the destructor: '.$plainfuncname);\r
                                return false;\r
                $methodfilter = isset($extra_options['method_filter']) ? $extra_options['method_filter'] : '';\r
                $methodtype = isset($extra_options['method_type']) ? $extra_options['method_type'] : 'auto';\r
 \r
-        if(version_compare(phpversion(), '5.0.3') == -1)\r
-               {\r
-                       // up to php 5.0.3 some useful reflection methods were missing\r
-                       error_log('XML-RPC: cannot not wrap php functions unless running php version bigger than 5.0.3');\r
-                       return false;\r
-               }\r
-\r
         $result = array();\r
                $mlist = get_class_methods($classname);\r
                foreach($mlist as $mname)\r
index 3fe530f..180595c 100644 (file)
        /**\r
        * Add a string to the debug info that can be later seralized by the server\r
        * as part of the response message.\r
-       * Note that for best compatbility, the debug string should be encoded using\r
+       * Note that for best compatibility, the debug string should be encoded using\r
        * the $GLOBALS['xmlrpc_internalencoding'] character set.\r
        * @param string $m\r
        * @access public\r
                * @see php_xmlrpc_encode for a list of values\r
                */\r
                var $phpvals_encoding_options = array( 'auto_dates' );\r
-               /// controls wether the server is going to echo debugging messages back to the client as comments in response body. valid values: 0,1,2,3\r
+               /// controls whether the server is going to echo debugging messages back to the client as comments in response body. valid values: 0,1,2,3\r
                var $debug = 1;\r
                /**\r
                * Controls behaviour of server when invoked user function throws an exception:\r
                var $user_data = null;\r
 \r
                /**\r
-               * @param array $dispmap the dispatch map withefinition of exposed services\r
-               * @param boolean $servicenow set to false to prevent the server from runnung upon construction\r
+               * @param array $dispmap the dispatch map with definition of exposed services\r
+               * @param boolean $servicenow set to false to prevent the server from running upon construction\r
                */\r
                function xmlrpc_server($dispMap=null, $serviceNow=true)\r
                {\r
                * with the standard processing of the php function exposed as method. In\r
                * particular, triggering an USER_ERROR level error will not halt script\r
                * execution anymore, but just end up logged in the xmlrpc response)\r
-               * Note that info added at elevel 2 and 3 will be base64 encoded\r
+               * Note that info added at level 2 and 3 will be base64 encoded\r
                * @access public\r
                */\r
                function setDebug($in)\r
                * Verify type and number of parameters received against a list of known signatures\r
                * @param array $in array of either xmlrpcval objects or xmlrpc type definitions\r
                * @param array $sig array of known signatures to match against\r
+               * @return array\r
                * @access private\r
                */\r
                function verifySignature($in, $sig)\r
 \r
                /**\r
                * Parse http headers received along with xmlrpc request. If needed, inflate request\r
-               * @return null on success or an xmlrpcresp\r
+               * @return mixed null on success or an xmlrpcresp\r
                * @access private\r
                */\r
                function parseRequestHeaders(&$data, &$req_encoding, &$resp_encoding, &$resp_compression)\r
                                }\r
                                /// @BUG this will fail on PHP 5 if charset is not specified in the xml prologue,\r
                                // the encoding is not UTF8 and there are non-ascii chars in the text...\r
-                               /// @todo use an ampty string for php 5 ???\r
+                               /// @todo use an empty string for php 5 ???\r
                                $parser = xml_parser_create($req_encoding);\r
                        }\r
                        else\r
 \r
                /**\r
                * add a string to the 'internal debug message' (separate from 'user debug message')\r
-               * @param string $strings\r
+               * @param string $string\r
                * @access private\r
                */\r
                function debugmsg($string)\r
index 1d36107..a9862c4 100644 (file)
@@ -19,15 +19,10 @@ function phpxmlrpc_verify_compat($mode='client')
     $ver = phpversion();
     $tests['php_version'] = array();
     $tests['php_version']['description'] = 'PHP version found: '.$ver.".\n\n";
-    if (version_compare($ver, '5') < 0)
+    if (version_compare($ver, '5.1.0') < 0)
     {
       $tests['php_version']['status'] = 0;
-      $tests['php_version']['description'] .= 'This version of PHP is not compatible with this release of the PHP XMLRPC library. Please upgrade to php 5 or later';
-    }
-    else if (version_compare($ver, '5.0.3') < 0)
-    {
-      $tests['php_version']['status'] = 1;
-      $tests['php_version']['description'] .= "This version of PHP is almost completely compatible with the PHP XMLRPC library.\nThe only unavailable function is automatic mapping of php functions to xmlrpc methods";
+      $tests['php_version']['description'] .= 'This version of PHP is not compatible with this release of the PHP XMLRPC library. Please upgrade to php 5.1.0 or later';
     }
     else
     {
@@ -71,10 +66,10 @@ function phpxmlrpc_verify_compat($mode='client')
     $ver = phpversion();
     $tests['php_version'] = array();
     $tests['php_version']['description'] = 'PHP version found: '.$ver.".\n\n";
-    if (version_compare($ver, '5') < 0)
+    if (version_compare($ver, '5.1.0') < 0)
     {
       $tests['php_version']['status'] = 0;
-      $tests['php_version']['description'] .= 'This version of PHP is not compatible with the PHP XMLRPC library. Please upgrade to 5.0 or later';
+      $tests['php_version']['description'] .= 'This version of PHP is not compatible with the PHP XMLRPC library. Please upgrade to 5.1.0 or later';
     }
     else
     {