datto / json-rpc
Fully unit-tested JSON-RPC 2.0 for PHP
Installs: 1 011 785
Dependents: 12
Suggesters: 0
Security: 0
Stars: 185
Watchers: 15
Forks: 40
Open Issues: 3
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ^6.5
README
Overview
This package allows you to create and evaluate JSON-RPC messages, using your own PHP code to evaluate the requests.
This package allows you to create and evaluate any JSON-RPC message. It implements the JSON-RPC specifications, but does not provide a transport layer—which you'll also need if you want to send or receive messages over a distance! One of the beautiful features of JSON-RPC is that you can use any transport layer to carry your messages: This package gives you that option.
If you're looking for an end-to-end solution, with the transport layer included, then you should use one of these alternative packages instead:
- To send messages over HTTP(S), use the php-json-rpc-http package.
- To send messages over SSH, use the php-json-rpc-ssh package.
Features
- Correct: fully compliant with the JSON-RPC 2.0 specifications (100% unit-test coverage)
- Flexible: you can use your own code to evaluate the JSON-RPC method strings
- Minimalistic: extremely lightweight
- Ready to use, with working examples
Examples
Client
$client = new Client(); $client->query(1, 'add', array(1, 2)); $message = $client->encode(); // message: {"jsonrpc":"2.0","method":"add","params":[1,2],"id":1}
Server
$api = new Api(); $server = new Server($api); $reply = $server->reply($message); // reply: {"jsonrpc":"2.0","result":3,"id":1}
See the examples folder for full working examples.
Requirements
- PHP >= 7.0
License
This package is released under an open-source license: LGPL-3.0
Installation
If you're using Composer, you can include this library (datto/json-rpc) like this:
composer require "datto/json-rpc"
Getting started
-
Try the examples. You can run the examples from the project directory like this:
php examples/client.php php examples/server.php
-
Take a look at the code "examples/src"—then replace it with your own!
Unit tests
You can run the suite of unit tests from the project directory like this:
./vendor/bin/phpunit
Changelog
See what has changed: Changelog