XmlRpc/Server.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled
with this package in the file LICENSE.txt.
It is also available through the world-wide-web at this URL:
http://framework.zend.com/license/new-bsd
If you did not receive a copy of the license and are unable to
obtain it through the world-wide-web, please send an email
to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_XmlRpc
- Subpackage
- Server
- Version
- $Id$
\Zend_XmlRpc_Server
Package: Zend_XmlRpc\Server
Throws
Throws
Throws
An XML-RPC server implementation
Example:
require_once 'Zend/XmlRpc/Server.php';
require_once 'Zend/XmlRpc/Server/Cache.php';
require_once 'Zend/XmlRpc/Server/Fault.php';
require_once 'My/Exception.php';
require_once 'My/Fault/Observer.php';
// Instantiate server
$server = new Zend_XmlRpc_Server();
// Allow some exceptions to report as fault responses:
Zend_XmlRpc_Server_Fault::attachFaultException('My_Exception');
Zend_XmlRpc_Server_Fault::attachObserver('My_Fault_Observer');
// Get or build dispatch table:
if (!Zend_XmlRpc_Server_Cache::get($filename, $server)) {
require_once 'Some/Service/Class.php';
require_once 'Another/Service/Class.php';
// Attach Some_Service_Class in 'some' namespace
$server->setClass('Some_Service_Class', 'some');
// Attach Another_Service_Class in 'another' namespace
$server->setClass('Another_Service_Class', 'another');
// Create dispatch table cache file
Zend_XmlRpc_Server_Cache::save($filename, $server);
}
$response = $server->handle();
echo $response;
- Parent(s)
- \Zend_Server_Abstract
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties
null|\Zend_XmlRpc_Request $_request = null
Request processed
Default value
null
Details- Type
- null | \Zend_XmlRpc_Request
string $_responseClass = 'Zend_XmlRpc_Response_Http'
Class to use for responses; defaults to {@link Zend_XmlRpc_Response_Http}
Default value
'Zend_XmlRpc_Response_Http'
Details- Type
- string
bool $_sendArgumentsToAllMethods = true
Send arguments to all methods or just constructor?
Default value
true
Details- Type
- bool
array $_typeMap = array('i4' => 'i4', 'int' => 'int', 'integer' => 'int', 'Zend_Crypt_Math_BigInteger' => 'i8', 'i8' => 'i8', 'ex:i8' => 'i8', 'double' => 'double', 'float' => 'double', 'real' => 'double', 'boolean' => 'boolean', 'bool' => 'boolean', 'true' => 'boolean', 'false' => 'boolean', 'string' => 'string', 'str' => 'string', 'base64' => 'base64', 'dateTime.iso8601' => 'dateTime.iso8601', 'date' => 'dateTime.iso8601', 'time' => 'dateTime.iso8601', 'time' => 'dateTime.iso8601', 'Zend_Date' => 'dateTime.iso8601', 'DateTime' => 'dateTime.iso8601', 'array' => 'array', 'struct' => 'struct', 'null' => 'nil', 'nil' => 'nil', 'ex:nil' => 'nil', 'void' => 'void', 'mixed' => 'struct')
PHP types => XML-RPC types
Default value
array('i4' => 'i4', 'int' => 'int', 'integer' => 'int', 'Zend_Crypt_Math_BigInteger' => 'i8', 'i8' => 'i8', 'ex:i8' => 'i8', 'double' => 'double', 'float' => 'double', 'real' => 'double', 'boolean' => 'boolean', 'bool' => 'boolean', 'true' => 'boolean', 'false' => 'boolean', 'string' => 'string', 'str' => 'string', 'base64' => 'base64', 'dateTime.iso8601' => 'dateTime.iso8601', 'date' => 'dateTime.iso8601', 'time' => 'dateTime.iso8601', 'time' => 'dateTime.iso8601', 'Zend_Date' => 'dateTime.iso8601', 'DateTime' => 'dateTime.iso8601', 'array' => 'array', 'struct' => 'struct', 'null' => 'nil', 'nil' => 'nil', 'ex:nil' => 'nil', 'void' => 'void', 'mixed' => 'struct')
Details- Type
- array
Methods
__call(string $method, array $params) : mixed
Proxy calls to system object
Parameters
Returns
Throws
Name | Type | Description |
---|---|---|
$method | string | |
$params | array |
Type | Description |
---|---|
mixed |
Exception | Description |
---|---|
\Zend_XmlRpc_Server_Exception |
_fixType(string $type) : string
Map PHP type to XML-RPC type
Parameters
Returns
Name | Type | Description |
---|---|---|
$type | string |
Type | Description |
---|---|
string |
_handle(\Zend_XmlRpc_Request $request) : \Zend_XmlRpc_Response
Handle an xmlrpc call (actual work)
Parameters
Returns
Throws
Name | Type | Description |
---|---|---|
$request | \Zend_XmlRpc_Request |
Type | Description |
---|---|
\Zend_XmlRpc_Response |
Exception | Description |
---|---|
\Zend_XmlRpcServer_Exception | \Exception | Zend_XmlRpcServer_Exceptions are thrown for internal errors; otherwise, any other exception may be thrown by the callback |
addFunction(string | array $function, string $namespace = '') : void
Attach a callback as an XMLRPC method
Attaches a callback as an XMLRPC method, prefixing the XMLRPC method name
with $namespace, if provided. Reflection is done on the callback's
docblock to create the methodHelp for the XMLRPC method.
Additional arguments to pass to the function at dispatch may be passed;
any arguments following the namespace will be aggregated and passed at
dispatch time.
ParametersName | Type | Description |
---|---|---|
$function | string | array | Valid callback |
$namespace | string | Optional namespace prefix |
Exception | Description |
---|---|
\Zend_XmlRpc_Server_Exception |
fault(string | \Exception $fault = null, int $code = 404) : \Zend_XmlRpc_Server_Fault
Raise an xmlrpc server fault
Parameters
Returns
Name | Type | Description |
---|---|---|
$fault | string | \Exception | |
$code | int |
Type | Description |
---|---|
\Zend_XmlRpc_Server_Fault |
getFunctions() : array
Returns a list of registered methods
Returns an array of dispatchables (Zend_Server_Reflection_Function,
_Method, and _Class items).
ReturnsType | Description |
---|---|
array |
getRequest() : null | \Zend_XmlRpc_Request
Return currently registered request object
Returns
Type | Description |
---|---|
null | \Zend_XmlRpc_Request |
getSystem() : \Zend_XmlRpc_Server_System
Retrieve system object
Returns
Type | Description |
---|---|
\Zend_XmlRpc_Server_System |
handle(\Zend_XmlRpc_Request $request = false) : \Zend_XmlRpc_Response | \Zend_XmlRpc_Fault
Handle an xmlrpc call
Parameters
Returns
Name | Type | Description |
---|---|---|
$request | \Zend_XmlRpc_Request | Optional |
Type | Description |
---|---|
\Zend_XmlRpc_Response | \Zend_XmlRpc_Fault |
loadFunctions(array | \Zend_Server_Definition $definition) : void
Load methods as returned from {@link getFunctions}
Typically, you will not use this method; it will be called using the
results pulled from {@link Zend_XmlRpc_Server_Cache::get()}.
ParametersName | Type | Description |
---|---|---|
$definition | array | \Zend_Server_Definition |
Exception | Description |
---|---|
\Zend_XmlRpc_Server_Exception | on invalid input |
sendArgumentsToAllMethods( $flag = null) : void
Send arguments to all methods?
If setClass() is used to add classes to the server, this flag defined
how to handle arguments. If set to true, all methods including constructor
will receive the arguments. If set to false, only constructor will receive the
arguments
ParametersName | Type | Description |
---|---|---|
$flag |
setClass(string | object $class, string $namespace = '', mixed $argv = null) : void
Attach class methods as XMLRPC method handlers
$class may be either a class name or an object. Reflection is done on the
class or object to determine the available public methods, and each is
attached to the server as an available method; if a $namespace has been
provided, that namespace is used to prefix the XMLRPC method names.
Any additional arguments beyond $namespace will be passed to a method at
invocation.
ParametersName | Type | Description |
---|---|---|
$class | string | object | |
$namespace | string | Optional |
$argv | mixed | Optional arguments to pass to methods |
Exception | Description |
---|---|
\Zend_XmlRpc_Server_Exception | on invalid input |
setEncoding(string $encoding) : \Zend_XmlRpc_Server
Set encoding
Parameters
Returns
Name | Type | Description |
---|---|---|
$encoding | string |
Type | Description |
---|---|
\Zend_XmlRpc_Server |
setPersistence(mixed $mode) : void
Do nothing; persistence is handled via {@link Zend_XmlRpc_Server_Cache}
Parameters
Name | Type | Description |
---|---|---|
$mode | mixed |
setRequest(string | \Zend_XmlRpc_Request $request) : \Zend_XmlRpc_Server
Set the request object
Parameters
Returns
Throws
Name | Type | Description |
---|---|---|
$request | string | \Zend_XmlRpc_Request |
Type | Description |
---|---|
\Zend_XmlRpc_Server |
Exception | Description |
---|---|
\Zend_XmlRpc_Server_Exception | on invalid request class or object |