client and server for PHP 5.3+
Do JSON-RPC. With Tivoka. It's as easy as that!
For convenience, you can easily switch between JSON-RPC 1.0 and JSON-RPC 2.0 without having to change your code.
Learn more about JSON-RPC at http://jsonrpc.org/.
These are just some quick examples.
Do a request
<?php
$connection = Tivoka\Client::connect('http://exapmle.com/api')
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>
Create a server
<?php
$methods = array(
'substract' => function($params) {
list($num1, $num2) = $params
return $num1 - $num2;
}
);
Tivoka\Server::provide($methods)->dispatch();
?>
- Have a look at the documentation in
doc/
- Submit any bugs, suggestions or questions to the issue tracker
- Set up
composer.json
in your project directory:
{
"require":{"tivoka/tivoka":"*"}
}
- Run composer:
$ php composer.phar install
Now, include 'vendor/autoload.php'
- Run the following:
$ pear channel-discover pearhub.org
$ pear install pearhub/tivoka
Now, include 'tivoka/include.php'
- Grab the source using
git clone https://github.com/marcelklehr/tivoka.git
or- download it
Now, include 'path/to/tivoka/include.php'
Copyright 2011-2012 by Marcel Klehr
MIT License.
3.1.0
- Fix #27: json-rpc response[result] may be
null
(thanks to vaab) - Feature: Allow setting of request headers and expose response headers (thanks to vaab)
- Fix bug with client-side notifications
- Add docs in
doc/
3.0.1
- Fix a typo, that used to screw up things when throwing an exception (thanks to gahr)
3.0.0
- use Namespaces (no longer supports php5.2)
- new factory classes (per server/client)
- Requests no longer require $id argument
- Dramatically simplified serverside usage
- Fluid spec version setter
- Now available as composer package
2.0.3
- Added HTTPS support
- target scheme is now treated case insensitive
2.0.2
- Introduced new directory structure
- Fixed #10
- Some Exception messages changed slightly to be more specific
2.0.1
- Patched http method spelling (make uppercase, so all servers accept it)
2.0.0
- complete Code base rework
- major API change
- removed Response Class
- Added aa number of shortcuts
- Implemented native remote interface