fpoirotte / xrl
Simple XML-RPC Library (both client and server)
Requires
- php: >=5.6
- ext-libxml: *
- ext-reflection: *
- ext-simplexml: *
- ext-spl: *
- ext-xmlreader: *
- ext-xmlwriter: *
Requires (Dev)
- ext-dom: *
- ext-gmp: *
- ext-simplexml: *
- erebot/buildenv: ^1.5.0
- erebot/plop: *
- fpoirotte/natives4doxygen: *
- pdepend/pdepend: *
- phpmd/phpmd: *
- phpunit/phpunit: *
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: >=1.2.2
Suggests
- ext-SimpleXML: Send/receive XML objects
- ext-gmp: Add support for the 'i8' (on 32-bit PHP) & 'bitinteger' types
- ext-openssl: Access resources that require an encrypted (SSL/TLS) connection
- erebot/plop: Log various events
README
Features
XRL provides the following features:
- Simple servers, using either the property operator
->
or array accessors[]
to provide methods. - Simple clients, using the regular method call syntax
$client->procedure(42)
to call a procedure provided by the remote XML-RPC server. - Intuitive XML-RPC calls, with automatic type conversion between PHP types and their XML-RPC counterparts.
- Optional validation of XML-RPC messages (both requests and responses).
- Two XML output formats (compact or indented), making it easy to debug potential issues.
- Many different types of installations are possible
(sorted from easiest to most complex):
- Using a PHAR archive
- Using composer
- From sources
- A CLI script (for composer/source installs, but see below) that can be used to query a remote XML-RPC server, display traffic (for debugging purposes), etc.
- A
.phar
archive that contains all of XRL's source code and can also be used in place of the regular CLI script. - Compatibility with PHP versions from PHP 5.3.4 onward.
Installation
Several types of installations are possible:
Using a
.phar
archive:Download the PHAR archive for the latest release from https://github.com/fpoirotte/XRL/releases/latest
Using composer:
$ php composer.phar require fpoirotte/xrl
From sources (stable version)
As a git clone:
$ git clone -b master git://github.com/fpoirotte/XRL.git
As a .tar.gz archive:
$ wget --content-disposition https://github.com/fpoirotte/XRL/tarball/master
As a .zip archive:
$ wget --content-disposition https://github.com/fpoirotte/XRL/zipball/master
From sources (development version)
As a git clone:
$ git clone -b develop git://github.com/fpoirotte/XRL.git
As a .tar.gz archive:
$ wget --content-disposition https://github.com/fpoirotte/XRL/tarball/develop
As a .zip archive:
$ wget --content-disposition https://github.com/fpoirotte/XRL/zipball/develop
Usage
Client: look at the code in client.php.
Server: look at the code in server.php.
Contributions
If you want to contribute to this project:
- Fork it.
- Change the code.
- Send us a pull request.
Please read the section on copyright attribution and licensing below carefully before sending your pull request.
Copyright and license
XRL is released under the 3-clause BSD License. An online copy of the license is available at https://raw.github.com/fpoirotte/XRL/develop/LICENSE.
We ask contributors to assign the copyright in their contributions to the collective name "XRL Team".
To make things easier, we also ask that you keep the same license in your contributions as the global one if possible (3-clause BSD License).
The copyright and licensing information should be reproduced at the top of every file. A template is given below for PHP files. For other types of files (RelaxNG schemae, reStructuredText pages, etc.), adapt the template to fit that file's particular syntax requirements.
Since we want to retain credit for contributors where it's due, feel free
to add a Doxygen \authors
command with your name and email in every class
where you made significant changes.
Example template (taken from XRL's autoloader) for PHP files containing both copyright information, licensing information and contributor credits:
<?php /* * This file is part of XRL, a simple XML-RPC Library for PHP. * * Copyright (c) 2012, XRL Team. All rights reserved. * XRL is licensed under the 3-clause BSD License. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace fpoirotte\XRL; /** * \brief * An helper class that wraps XRL's autoloader. * * \authors John Doe <john@doe.example.com> * \authors Jane Doe <jane@doe.example.com> */ class Autoload { // Some code here... }