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