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)...