Need help with php-advanced-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

158 Stars 15 Forks ISC License 55 Commits 16 Opened issues


A more advanced PHP implementation of the JSONRPC Protocol ğŸ“žâ—

Services available


Need anything else?

Contributors list

Advanced JSONRPC

Version Build Status Coverage semantic-release License

Provides basic classes for requests and responses in JSONRPC and a

class that can decode a JSONRPC request and call appropriate methods on a target, coercing types of parameters by type-hints and

Supports nested targets: If the method is something like

, the dispatcher will look for a
property on the target and call
on it. The delimiter is configurable and defaults to the PHP object operator


use AdvancedJsonRpc\Dispatcher;

class Argument { public $aProperty; }

class Target { public function someMethod(Argument $arg) { // $arg instanceof Argument === true // $arg->aProperty === 123 return 'Hello World'; } }

$dispatcher = new Dispatcher(new Target());

$result = $dispatcher->dispatch(' { "jsonrpc": "2.0", "id": 1, "method": "someMethod", "params": { "arg": {"aProperty": 123} } } ');

// $result === "Hello World"

Nested Targets

use AdvancedJsonRpc\Dispatcher;

class TextDocumentManager { public function didOpen(string $uri) { return 'Thank you for this information'; } }

class LanguageServer { public $textDocument;

public function __construct()
    $this->textDocument = new TextDocumentManager();


$dispatcher = new Dispatcher(new LanguageServer(), '/');

$result = $dispatcher->dispatch(' { "jsonrpc": "2.0", "id": 1, "method": "textDocument/didOpen", "params": { "uri": "file:///c/Users/felix/test.php" } } ');

// $result === "Thank you for this information"

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.