trifs/jsonrpc

A simple JSON-RPC client and server

v1.1.1 2017-10-16 07:55 UTC

This package is not auto-updated.

Last update: 2024-04-27 13:05:01 UTC


README

PHP JSON-RPC is a simple JSON-RPC client and server. It is currently in an alpha state, a stable version is expected soon. Word of warning, API will probably change soon as well :)

Build Status

Installation

Composer

Simply add a dependency on trifs/phpjsonrpc to your project's composer.json file if you use Composer to manage the dependencies of your project. Here is a minimal example of a composer.json:

{
    "require": {
        "trifs/jsonrpc": "dev-master"
    }
}

For a system-wide installation via Composer, you can run:

composer global require 'trifs/phpjsonrpc=*'

Usage Examples

Client (single request)

$client = new trifs\jsonrpc\Client('http://example.com');
$client->request('method-one')
    ->send();

$client = new trifs\jsonrpc\Client('http://example.com');
$client->notification('method-one')
    ->send();

Client (batch request)

$client = new trifs\jsonrpc\Client('http://example.com');
$client->request('method-one')
    ->request('method-two')
    ->notification('method-three')
    ->send();

Client configuration

Client can be configured with additional options:

  • timeout in seconds, connection timeout for file_get_contents calls.
$client = new trifs\jsonrpc\Client(
    'http://example.com',
    ['timeout' => 5, ]
);

There is also the option of swapping file_get_contents call with an implementation that uses curl:

$client->setTransporter(new trifs\jsonrpc\Client\Transporter\CurlTransporter());

The option might be useful if php.ini configuration allow_url_fopen is set to Off, which disables file_get_contents for remote URLs.

Server

$input   = file_get_contents('php://input');
$invoker = function($method, array $params = []) {
    return time();
};

$server = new trifs\jsonrpc\Server($input, $invoker);
$server->run();

Contributing

Contributions are always welcome. You make our lives easier by sending us your contributions through GitHub pull requests.

Due to time constraints, we are not always able to respond as quickly as we would like. Please do not take delays personal and feel free to remind us here if you feel that we forgot to respond.

Using PHP JSON-RPC in a development environment

To set PHP JSON-RPC up locally, make sure to have Vagrant and VirtualBox installed.

git clone git://github.com/3fs/php-json-rpc
cd php-json-rpc
vagrant up

After making the changes, run ./build/qa.sh all, sit back and relax. If there are problems reported, repeat. If not, try harder :)