trifs / jsonrpc
A simple JSON-RPC client and server
Installs: 20 690
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 4
Open Issues: 1
Requires
- php: >=5.5
Requires (Dev)
- phpmd/phpmd: 2.*
- phpunit/phpunit: 4.*
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: 1.*
This package is not auto-updated.
Last update: 2025-03-01 16:51:54 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 :)
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 forfile_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 :)