The wrap_php_function
and
wrap_xmlrpc_method
functions have been moved
out of the base library file xmlrpc.inc
into
a file of their own: xmlrpc_wrappers.inc
. You
will have to include() / require() it in your scripts if you have
been using those functions. For increased security, the automatic
rebuilding of php object instances out of received xmlrpc structs
in wrap_xmlrpc_method()
has been disabled
(but it can be optionally re-enabled). Both
wrap_php_function()
and
wrap_xmlrpc_method()
functions accept many
more options to fine tune their behaviour, including one to return
the php code to be saved and later used as standalone php
script
The constructor of xmlrpcval() values has seen some internal
changes, and it will not throw a php warning anymore when invoked
using an unknown xmlrpc type: the error will only be written to
php error log. Also new xmlrpcval('true', 'boolean')
is not supported anymore
The new function
php_xmlrpc_decode_xml()
will take the xml
representation of either an xmlrpc request, response or single
value and return the corresponding php-xmlrpc object
instance
A new function wrap_xmlrpc_server()
has
been added, to wrap all (or some) of the methods exposed by a
remote xmlrpc server into a php class
A new file has been added:
verify_compat.php
, to help users diagnose the
level of compliance of their php installation with the
library
Restored compatibility with php 4.0.5 (for those poor souls still stuck on it)
Method xmlrpc_server->service()
now returns a value: either the response payload or xmlrpcresp
object instance
Method
xmlrpc_server->add_to_map()
now
accepts xmlrpc methods with no param definitions
Documentation for single parameters of exposed methods can be added to the dispatch map (and turned into html docs in conjunction with a future release of the 'extras' package)
Full response payload is saved into xmlrpcresp object for further debugging
The debugger can now generate code that wraps a remote method into a php function (works for jsonrpc, too); it also has better support for being activated via a single GET call (e.g. for integration into other tools)
Stricter parsing of incoming xmlrpc messages: two more
invalid cases are now detected (double data
element inside array
and
struct
/array
after scalar
inside value
element)
More logging of errors in a lot of situations
Javadoc documentation of lib files (almost) complete
Many performance tweaks and code cleanups, plus the usual crop of bugs fixed (see NEWS file for complete list of bugs)
Lib internals have been modified to provide better support for grafting extra functionality on top of it. Stay tuned for future releases of the EXTRAS package (or go read Appendix B)...