Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/datto/php-json-rpc
Fully unit-tested JSON-RPC 2.0 for PHP
https://github.com/datto/php-json-rpc
Last synced: 6 days ago
JSON representation
Fully unit-tested JSON-RPC 2.0 for PHP
- Host: GitHub
- URL: https://github.com/datto/php-json-rpc
- Owner: datto
- License: lgpl-3.0
- Created: 2015-05-22T15:51:33.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-03-29T19:48:23.000Z (over 4 years ago)
- Last Synced: 2024-09-08T10:43:50.239Z (2 months ago)
- Language: PHP
- Size: 67.4 KB
- Stars: 185
- Watchers: 15
- Forks: 39
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README
# JSON-RPC for PHP
## 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](https://github.com/datto/php-json-rpc-http) package.
* To send messages over SSH, use the
[php-json-rpc-ssh](https://github.com/datto/php-json-rpc-ssh) package.## Features
* Correct: fully compliant with the [JSON-RPC 2.0 specifications](http://www.jsonrpc.org/specification) (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
```php
$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
```php
$api = new Api();$server = new Server($api);
$reply = $server->reply($message);
// reply: {"jsonrpc":"2.0","result":3,"id":1}
```*See the [examples](https://github.com/datto/php-json-rpc/tree/master/examples) folder for full working examples.*
## Requirements
* PHP >= 7.0
## License
This package is released under an open-source license: [LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html)
## Installation
If you're using [Composer](https://getcomposer.org/), you can include this library
([datto/json-rpc](https://packagist.org/packages/datto/json-rpc)) like this:
```
composer require "datto/json-rpc"
```## Getting started
1. Try the examples. You can run the examples from the project directory like this:
```
php examples/client.php
php examples/server.php
```2. 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](https://github.com/datto/php-json-rpc/blob/master/CHANGELOG.md)## Author
[Spencer Mortensen](http://spencermortensen.com/contact/)