What's Aura?

Aura is a plug-and-play object-oriented XML-RPC application framework written in PHP5. It bundles an XML-RPC client and a web-server-based XML-RPC server (but a standalone server prototype is in progress). It has a very simple and clean API for making XML-RPC calls. AuraClient objects abstract XML-RPC servers into native PHP5 objects (with a two-way PHP5-XML-RPC type engine) making XML-RPC integration completely transparent. It also allows exposing already written PHP functions and classes as web services for instant productivity. It bundles a web "shell" to experiment with the library interactively.


You can download the latest version (0.1-alpha) from the project download page. Uncompress the release bundle to your web server and access shell.php from a Web browser to start experimenting with it.

Please note that the library is still very much in alpha state and not to be used in production yet.


Aura is distributed under the GNU Lesser/Libray Public License. See the file COPYING in the release bundle for more details.


(This is a really quick guide to Aura just until the manual is finished)

To make an XML-RPC method call, all you have to is to create an AuraClient object and... call the method! For example of we have an XML-RPC server at http://xmlrpc-api.example.com that supports a method named hello and that it takes a single argument that it returns as is.

    require_once 'path/to/aura/AuraClient.class.php';

    $client = new AuraClient('http://xmlrpc-api.example.com'); 
    $result = $client->hello('return me');
    // $result is a string and contains 'return me'
That's all! All conversions between PHP and XML-RPC types are handled internally according to the table shown below.
XML-RPC Type PHP Type/Class
int or i4 int
string string
double double
array a numerically indexed array
struct an associative array
nil null
dateTime.iso8601 an AuraDateTime object
base64 an AuraBase64 object
Most XML-RPC services offer methods whose names don't qualify as PHP function/method identifiers. You can work around this problem in two ways: a) using the MethodPrefix property of AuraClient b) using auraInvoke* methods of AuraClient.

TODO: Write more!

Got a question, bug report, feature request, or anything else?

For questions on how to use Aura, use the Help forum. For bug reports and feature requets please use the Project Tracker. If you have any suggestions or comments on using and/or developing Aura, you can directly reach me at ahmeds [at] users.sourceforge.net.