Need help with php-json-rpc?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

datto
143 Stars 29 Forks GNU Lesser General Public License v3.0 35 Commits 2 Opened issues

Description

Fully unit-tested JSON-RPC 2.0 for PHP

Services available

!
?

Need anything else?

Contributors list

# 393,341
PHP
33 commits
# 591,682
Shell
Nim
Haxe
sed
1 commit

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 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

  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

Author

Spencer Mortensen

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.