Documentation

Horde_Rpc_Jsonrpc extends Horde_Rpc
in package

The Horde_RPC_json-rpc class provides a JSON-RPC 1.1 implementation of the Horde RPC system.

  • Only POST requests are supported.
  • Named and positional parameters are accepted but the Horde registry only works with positional parameters.
  • Service Descriptions are not supported yet.
Tags
link
http://json-rpc.org
category

Horde

Table of Contents

$_logger  : Horde_Log_Logger
Logging
$_params  : array<string|int, mixed>
All driver-specific parameters.
$_request  : Horde_Controller_Request_Http
Request variables, cookies etc.
$_requestMissingAuthorization  : bool
Whether we should exit if auth fails instead of requesting authorization credentials.
$_requireAuthorization  : bool
Do we need an authenticated user?
__construct()  : mixed
Constructor.
_objectsToArrays()  : mixed
Converts stdClass object to associative arrays.
_raiseError()  : PEAR_Error
Returns a specially crafted PEAR_Error object containing a JSON-RPC response in the error message.
authorize()  : bool
Check authentication. Different backends may handle authentication in different ways. The base class implementation checks for HTTP Authentication against the Horde auth setup.
factory()  : Horde_Rpc
Attempts to return a concrete RPC server instance based on $driver.
getInput()  : mixed
Get the request body input. Different RPC backends can override this to return an open stream to php://stdin, for instance - whatever is easiest to handle in the getResponse() method.
getResponse()  : string
Sends an RPC request to the server and returns the result.
getResponseContentType()  : string
Returns the Content-Type of the response.
request()  : mixed
Builds an JSON-RPC request and sends it to the server.
sendOutput()  : void
Send the output back to the client

Properties

$_logger

Logging

protected Horde_Log_Logger $_logger

$_params

All driver-specific parameters.

protected array<string|int, mixed> $_params = array()

$_request

Request variables, cookies etc.

protected Horde_Controller_Request_Http $_request

..

$_requestMissingAuthorization

Whether we should exit if auth fails instead of requesting authorization credentials.

protected bool $_requestMissingAuthorization = \true

$_requireAuthorization

Do we need an authenticated user?

protected bool $_requireAuthorization = \true

Methods

__construct()

Constructor.

public __construct(Horde_Controller_Request_Http $request[, array<string|int, mixed> $params = array() ]) : mixed
Parameters
$request : Horde_Controller_Request_Http

The request object.

$params : array<string|int, mixed> = array()

A hash containing any additional configuration or connection parameters a subclass might need.

Return values
mixed

_objectsToArrays()

Converts stdClass object to associative arrays.

public _objectsToArrays( $data) : mixed
Parameters
$data :

mixed Any stdClass object, array, or scalar.

Return values
mixed

stdClass objects are returned as asscociative arrays, scalars as-is, and arrays with their elements converted.

_raiseError()

Returns a specially crafted PEAR_Error object containing a JSON-RPC response in the error message.

public _raiseError(string|PEAR_Error $error, stdClass $request) : PEAR_Error
Parameters
$error : string|PEAR_Error

The error message or object.

$request : stdClass

The original request object.

Return values
PEAR_Error

An error object suitable for a JSON-RPC 1.1 conform error result.

authorize()

Check authentication. Different backends may handle authentication in different ways. The base class implementation checks for HTTP Authentication against the Horde auth setup.

public authorize() : bool
Return values
bool

Returns true if authentication is successful. Should send appropriate "not authorized" headers or other response codes/body if auth fails, and take care of exiting.

factory()

Attempts to return a concrete RPC server instance based on $driver.

public static factory(mixed $driver, mixed $request[, array<string|int, mixed> $params = null ]) : Horde_Rpc
Parameters
$driver : mixed

The type of concrete Horde_Rpc subclass to return.

$request : mixed
$params : array<string|int, mixed> = null

A hash containing any additional configuration or connection parameters a subclass might need.

Return values
Horde_Rpc

The newly created concrete Horde_Rpc server instance, or an exception if there is an error.

getInput()

Get the request body input. Different RPC backends can override this to return an open stream to php://stdin, for instance - whatever is easiest to handle in the getResponse() method.

public getInput() : mixed

The base class implementation looks for $HTTP_RAW_POST_DATA and returns that if it's available; otherwise, it returns the contents of php://stdin.

Return values
mixed

The input - a string (default), a filehandle, etc.

getResponse()

Sends an RPC request to the server and returns the result.

public getResponse(mixed $request) : string
Parameters
$request : mixed
Return values
string

The JSON encoded response from the server.

getResponseContentType()

Returns the Content-Type of the response.

public getResponseContentType() : string
Return values
string

The MIME Content-Type of the RPC response.

request()

Builds an JSON-RPC request and sends it to the server.

public static request(string|Horde_Url $url, string $method, Horde_Http_Client $client[, array<string|int, mixed> $params = null ][, mixed $unused = null ]) : mixed

This statically called method is actually the JSON-RPC client.

Parameters
$url : string|Horde_Url

The path to the JSON-RPC server on the called host.

$method : string

The method to call.

$client : Horde_Http_Client
$params : array<string|int, mixed> = null

A hash containing any necessary parameters for the method call.

$unused : mixed = null

This param is only here to be compatible with Horde_Rpc, since that has $driver as the first param.

Tags
throws
Horde_Rpc_Exception
Return values
mixed

The returned result from the method.

sendOutput()

Send the output back to the client

public sendOutput(string $output) : void
Parameters
$output : string

The output to send back to the client. Can be overridden in classes if needed.

Return values
void

Search results