The latest news are available here. Older news are listed below...
-
9th of December, 2021
Released lib version 4.6.0.
The release notes are available on Github
-
3rd of January, 2021
Released lib version 4.5.1.
The release notes are available on Github
-
31st of December, 2020
Released lib version 4.5.0.
The release notes are available on Github
-
17th of December, 2020
Released lib version 4.4.3.
The release notes are available on Github
-
4th of March, 2020
Released lib version 4.4.2.
The release notes are available on Github
-
29th of July, 2019
Released lib version 4.4.1.
The release notes are available on Github
-
6th of November, 2017
Released lib version 4.3.0.
The release notes are available on Github
-
1st of July, 2017
Released lib versions 4.2.0 and 3.1.0.
The release notes are available on Github
-
20th of January, 2016
Released lib version 4.0.0.
This is the first time - ever - that the API sees major changes, doing away with the past and starts a transition to modern-day php.
Namespaces have been introduced, and the default character set in use if UTF-8; support for mbstring has been added, and much more.
For a complete list of changes, head on to the announcement on Github
-
19th of April, 2015
Released lib version 3.0.1.
The release notes are available on Github
-
15th of June, 2014
Released lib version 3.0.0.
The release notes are available on Github
-
15th of December, 2013
The project moved to GitHub
-
2nd of February, 2013
The Online XML-RPC debugger is back online, at the new address https://gggeek.altervista.org/sw/xmlrpc/debugger/
-
5th of September, 2009
Released lib version 3.0.0 beta.
This is the first release of the library to only support PHP 5. Some legacy code has been removed, and support for features such as exceptions and dateTime objects introduced.
The "beta" tag is meant to indicate the fact that the refactoring has been more widespread than in precedent releases and that more changes are likely to be introduced with time - the library is still considered to be production quality.
The "Extras" Package and the JS-XMLRPC library have also been updated with bugfix releases.
-
17th of March, 2009
Released lib version 2.2.2.
PLEASE NOTE: pending any security problem, this should be the last release of the library to support PHP version 4.
-
7th of March, 2008
Released lib version 2.2.1.
-
4th of July, 2007
Updated the online documentation to match release 2.2 (with better formatting than before)
-
1st of March, 2007
The Online XML-RPC debugger is back online, at the new address http://gggeek.raprap.it/debugger/.
Grazie Davide!!!
-
25th of February, 2007
I am pleased to announce the release of PHP-XMLRPC version 2.2 (release notes), as well as the EXTRAS package version 0.4 (release notes).
Both releases bring minor bug fixes and incremental improvements, especially in the json parsing area.
The initial release (version 0.1) of php-xmlrpc sister-library is also available. It is written in pure javascript, and implements the same API.
It can be added to the php debugger or the sel-documenting server class to provide a visual editor component for xmlrpc values.
-
10th of February, 2007
The Online XMLRPC demo Server is unfortunately not available any more.
Anyone willing to provide a hosting server with php 4 or 5 (and fsockopen or cURL active) will be heartily welcome. Monthly bandwidth consumed up to now was very low.
While a suitable relocation is found, please use the javascript debugger available here.
-
26th of January, 2007
The Online XMLRPC demo Server is now better than ever, with a new visual value editor (as was previously added to the oline debugger).
To see it in action, click on a method name in the page listing all available methods, then on "edit" button below the textarea dedicated to method testing.
This improvement is currently only available in the CVS version of the documenting_xmlrpc_server class, and it will be part of the next release of the EXTRAS package.
The Javascript version of the library also got its own Homepage.
-
12th of December, 2006
The Online XMLRPC/JSONRPC Debugger is now better than ever, with a new GUI value editing component. Payload for calling remote methods can be built by using pure point-n-click.
This is not only a welcome addition, but it is also the first step towards the release of a new module of the lib.
Tentatively named jsxmlrpc, it has the lofty goal of implementing in javascript the complete api of the phpxmlrpc library (plus the jsonrpc package). Initial source code is in CVS, but http and xml parsing are still missing.
Any contribution is welcome.
-
Version 0.3 of the "EXTRAS" package was published on the 22nd of November 2006
Besides many bugfixing and improvements to the existing features (especially for JSON support), a (still quite incomplete) manual havs been added.
The new JSON_EXTENSION_API file implements a replacement for the php native json extension, written in 100% pure php. Typical use case: enabling a php application written to make use of the php native xmlrpc extension to run also on webservers where the extension is not / can not be installed.
Here's the release announcement.
-
17th of November, 2006
The project has been uploaded to OHLOH, so everybody can check out the very nice stats produced:
A nice comparison of all the JSON libs for php, including this very own, has been posted on https://gggeek.altervista.org/sw/article_20061113.html
-
Version 0.2 of the "EXTRAS" package was published on the 8th of September 2006
Besides many bugfixing and improvements to the existing features (especially for JSON support), two very interesting new packages have been added:
XMLRPC_EXTENSION_API - a replacement for the php native xmlrpc extension, written in 100% pure php. Typical use case: enabling a php application written to make use of the php native xmlrpc extension to run also on webservers where the extension is not / can not be installed.
ADODB - designed to provide a flexible and easy-to-use database-to-webservice conversion mechanism. Based on the adodb library by John Lim, it includes conversion functions, server component and meta-db-driver that allows transparent access to remote databases over http.
Here's the release announcement.
-
Version 2.1 was published on the 28th of August 2006
Changes since version 2.0 include some bugfixes, a single security enhancement and a few interesting new features thrown in for good measure.
Overall execution speed has slightly increased.
Here's the release announcement.
-
2nd of May 2006
The online demo server (at https://phpxmlrpc.sf.net/server.php) and debugger (at https://gggeek.raprap.it) have been upgraded to support JSON-RPC.
Please remember that json-rpc support is still quite incomplete, and nice bits such as notifications, multicall or full multi-character set support are still missing.
-
26th of April 2006
A nice tutorial on the usage of the EXTRAS package and especially the JSON-RPC server has been posted here.
As of now, it is pretty much the only documentation covering the package.
-
24th of April 2006
The EXTRAS package, version 0.1, has been released. Here's the release announcement.
It contains many useful add-ons to the library, that have been deemed too heavy to be included in the main distributions.
New capabilities provided include: automatic generation of html documentation for xmlrpc servers, new classes for ajax-style coding and JSON-RPC support.
Even though the code is pretty much in alpha state you should definitely check it out.
Comments and suggestions are very welcome.
-
Version 2.0 Final was published on the 24th of April 2006
Changes since version 2.0 RC2 are mostly small bugfixes, with a couple of new features thrown in for good measure.
Here's the release announcement.
-
Version 2.0 Release Candidate 3 was published on the 22nd of January 2006
Changes since version 2.0 RC2 are:- fixed a server bug in recognizing clients that accept http compressed responses
- type juggling: let an xmlrpcval created with new "xmlrpcval(8, 'string')" be correctly serialized when internal encoding is set to UTF-8
- type juggling: let an xmlrpcval created with new "xmlrpcval('hello', 'int')" be serialized to 0 instead of an invalid xmlrpc payload
- let php_xmlrpc_decode accept xmlrpcmsg objects as valid input
- let server and client objects serialize calls using a specified character set encoding for the produced xml instead of US-ASCII (ISO-8859-1 and UTF-8 supported)
- client->setDebug(2) can be used to have the complete payload printed to screen before being sent
- 'class::method' syntax is now accepted in the server dispatch map
- fix warnings emitted by client when receiving empty strings and decoding directly to php values
- other minor fixes, including one with php 5 and multiple sends of the same msg with http compression of requests
- a couple of (private/protected) methods have been refactored, as well as a couple of extra parameters added to some (private) functions - this has no impact on the public API and should be of interest primarily to people extending / subclassing the lib.
-
1st of December 2005
New functionality has been added to the xmlrpc server, by means of a subclass of xmlrpc_server.
The new server object can generate human-readable html documentation for all the methods it exposes, and will by default display it when called via a GET http request.
You can see how the generated documentation looks clicking here. (PS: thanks to the XINS project for the look and feel...).
The new server class will be made available in a separate package from the core lib, together with the JSON-RPC implementation and, possibly, some WSDL magic.
-
Version 2.0 Release Candidate 2 was published on the 22nd of November, 2005.
Changes since version 2.0 RC1 are:- fixed two bugs that prevented xmlrpc calls to take place over https
- fixed two bugs that prevented proper recognition of xml character set when it was declared inside the xml prologue
- added xmlrpc_client::setKey($key, $keypass) method, to allow using client side certificates for https connections
- fixed bug that prevented proper serialization of string xmlrpcvals when $xmlrpc_internalencoding was set to UTF-8
- fixed bug in xmlrpc_server::echoInput() (and marked method as deprecated)
- correctly set cookies/http headers into xmlrpcresp objects even when the send() method call fails for some reason
- added a benchmark file in the testsuite directory
- a couple of (private/protected) methods have been refactored, as well as a couple of extra parameters added to some (private) functions - this has no impact on the public API and should be of interest primarily to people extending / subclassing the lib.
- there is also new, PARTIAL support for the JSON-RPC protocol, implemented in two files in the extras dir (more info about json-rpc at https://www.jsonrpc.org/)
-
Version 2.0 Release Candidate 1 was published on the 3rd of October, 2005.
The list of fixes and improvements over version 1 is so long and impressive that only a brief summary can be given here (no really!)- Support for HTTP proxies (new method: xmlrpc_client::setProxy())
- Support HTTP compression of both requests and responses. Clients can specify what kind of compression they accept for responses between deflate/gzip/any, and whether to compress the requests. Servers by default compress responses to clients that explicitly declare support for compression (new methods: xmlrpc_client::setAcceptedCompression(), xmlrpc_client::setRequestCompression()). Note that the ZLIB php extension needs to be enabled in PHP to support compression.
- Implement HTTP 1.1 connections, but only if CURL is enabled (added an extra parameter to xmlrpc_client::xmlrpc_client to set the desired HTTP protocol at creation time and a new supported value for the last parameter of xmlrpc_client::send, which now can also be safely omitted if it has been specified at creation time)
- With PHP versions greater than 4.3.8 keep-alives are enabled by default for HTTP 1.1 connections. This should yeld faster execution times when making multiple calls in sequence to the same xml-rpc server from a single client.
- Introduce support for cookies. Cookies to be sent to the server with a request can be set using xmlrpc_client::setCookie(), while cookies received from the server are found in xmlrpcresp::cookies(). It is left to the user to check for received cookies and decide wheter they apply to successive calls or not.
- Better support for detecting different character set encodings of xml-rpc requests and responses: both client and server objects will correctly detect the charset encoding of received xml, and use an appropriate xml parser.
Supported encodings are US-ASCII, UTF-8 and ISO-8859-1. - Added one new xmlrpcmsg constructor syntax, allowing usage of a single string with the complete URL of the target server
- Convert xml-rpc boolean values into native php values instead of 0 and 1
- Force the phpxmlrpc_encode function to properly encode numerically indexed php arrays into xml-rpc arrays (numerically indexed php arrays always start with a key of 0 and increment keys by values of 1)
- Prevent the phpxmlrpc_encode function from further re-encoding any objects of class xmlrpcval that are passed to it. This allows to call the function with arguments consisting of mixed php values / xmlrpcval objects.
- Allow a server to NOT respond to system.* method calls (by setting the $server->allow_system_funcs property).
- Implement a new xmlrpcval method to determine if a value of type struct has a member of a given name without having to loop trough all members: xmlrpcval::structMemExists()
- Expand methods xmlrpcval::addArray, addScalar and addStruct allowing extra php values to be added to xmlrpcval objects already formed.
- Let the xmlrpc_client::send method accept an XML string for sending instead of an xmlrpcmsg object, to facilitate debugging
- Extend the php_xmlrpc_encode and php_xmlrpc_decode functions to allow serialization and rebuilding of PHP objects. To successfully rebuild a serialized object, the object class must be defined in the deserializing end of the transfer. Note that object members of type resource will be deserialized as NULL values.
Note that his has been implemented adding a "php_class" attribute to xml representation of xmlrpcval of STRUCT type, which, strictly speaking, breaks the xml-rpc spec. Other xmlrpc implementations are supposed to ignore such an attribute (unless they implement a brain-dead custom xml parser...), so it should be safe enabling it in heterogeneous environments. The activation of this feature is done by usage of an option passed as second parameter to both php_xmlrpc_encode and php_xmlrpc_decode. - Extend the php_xmlrpc_encode function to allow automatic serialization of is08601-conforming php strings as datetime.iso8601 xmlrpcvals, by usage of an optional parameter
- Added an automatic stub code generator for converting xmlrpc methods to php functions and vice-versa.
This is done via two new functions: wrap_php_function and wrap_xmlrpc_method, and has many caveats, with php being a typeless language and all...
With PHP versions lesser than 5.0.3 wrapping of php functions into xmlrpc methods is not supported yet. - Allow object methods to be used in server dispatch map
- Added a complete debugger solution, in the debugger folder
- Added configurable server-side debug messages, controlled by the new method xmlrpc_server::SetDebug(). At level 0, no debug messages are sent to the client; level 1 is the same as the old behavior; at level 2 a lot more info is echoed back to the client, regarding the received call; at level 3 all warnings raised during server processing are trapped (this prevents breaking the xml to be echoed back to the client) and added to the debug info sent back to the client
-
Stable Release 1.2.1 was published on the 11th of September, 2005.
This release restores compatibility with PHP3, which had been broken in release 1.2.
The only other changes are some minor documentation updates and removal of unused files that had been erroneously packed in 1.2.
Page last updated: 2021/12/23