API Documentation

Zend/XmlRpc/Server.php

Show: inherited
Table of Contents

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 license@zend.com so we can send you a copy immediately.

Category
Zend  
Copyright
Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_XmlRpc  
Subpackage
Server  
Version
$Id: Server.php 24594 2012-01-05 21:27:01Z matthew $  

\Zend_XmlRpc_Server

Package: Zend\XmlRpc\Server

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-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Properties

Propertyprotectedstring  $_encoding= ''UTF-8''

Character encoding

Default value'UTF-8'Details
Type
string
Propertyprotectednull|\Zend_XmlRpc_Request  $_request= 'null'

Request processed

Default valuenullDetails
Type
null\Zend_XmlRpc_Request
Propertyprotectedstring  $_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
Propertyprotectedbool  $_sendArgumentsToAllMethods= 'true'

Send arguments to all methods or just constructor?

Default valuetrueDetails
Type
bool
Propertyprotected\Zend_Server_Definition  $_table= ''

Dispatch table of name => method pairs

Propertyprotectedarray  $_typeMap= 'array( 'i4' => 'i4''

PHP types => XML-RPC types

Default valuearray( 'i4' => 'i4'Details
Type
array

Methods

methodpublic__call( string $method, array $params ) : mixed

Proxy calls to system object

Parameters
Name Type Description
$method string
$params array
Returns
Type Description
mixed
Throws
Exception Description
\Zend_XmlRpc_Server_Exception
methodpublic__construct( ) : void

Constructor

Creates system.* methods.

methodprotected_fixType( string $type ) : string

Map PHP type to XML-RPC type

Parameters
Name Type Description
$type string
Returns
Type Description
string
methodprotected_handle( \Zend_XmlRpc_Request $request ) : \Zend_XmlRpc_Response

Handle an xmlrpc call (actual work)

Parameters
Name Type Description
$request \Zend_XmlRpc_Request
Returns
Type Description
\Zend_XmlRpc_Response
Throws
Exception Description
\Zend_XmlRpcServer_Exception|\Exception Zend_XmlRpcServer_Exceptions are thrown for internal errors; otherwise, any other exception may be thrown by the callback
methodprotected_registerSystemMethods( ) : void

Register system methods with the server

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

Parameters
Name Type Description
$function string|array

Valid callback

$namespace string

Optional namespace prefix

Throws
Exception Description
\Zend_XmlRpc_Server_Exception
methodpublicfault( string|\Exception $fault = null, int $code = 404 ) : \Zend_XmlRpc_Server_Fault

Raise an xmlrpc server fault

Parameters
Name Type Description
$fault string|\Exception
$code int
Returns
Type Description
\Zend_XmlRpc_Server_Fault
methodpublicgetDispatchTable( ) : array

Retrieve dispatch table

Returns
Type Description
array
methodpublicgetEncoding( ) : string

Retrieve current encoding

Returns
Type Description
string
methodpublicgetFunctions( ) : array

Returns a list of registered methods

Returns an array of dispatchables (Zend_Server_Reflection_Function, _Method, and _Class items).

Returns
Type Description
array
methodpublicgetRequest( ) : null|\Zend_XmlRpc_Request

Return currently registered request object

Returns
Type Description
null|\Zend_XmlRpc_Request
methodpublicgetResponseClass( ) : string

Retrieve current response class

Returns
Type Description
string
methodpublicgetSystem( ) : \Zend_XmlRpc_Server_System

Retrieve system object

Returns
Type Description
\Zend_XmlRpc_Server_System
methodpublichandle( \Zend_XmlRpc_Request $request = false ) : \Zend_XmlRpc_Response|\Zend_XmlRpc_Fault

Handle an xmlrpc call

Parameters
Name Type Description
$request \Zend_XmlRpc_Request

Optional

Returns
Type Description
\Zend_XmlRpc_Response|\Zend_XmlRpc_Fault
methodpublicloadFunctions( 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()}.

Parameters
Name Type Description
$definition array|\Zend_Server_Definition
Throws
Exception Description
\Zend_XmlRpc_Server_Exception on invalid input
methodpublicsendArgumentsToAllMethods(  $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

Parameters
Name Type Description
$flag
methodpublicsetClass( 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.

Parameters
Name Type Description
$class string|object
$namespace string

Optional

$argv mixed

Optional arguments to pass to methods

Throws
Exception Description
\Zend_XmlRpc_Server_Exception on invalid input
methodpublicsetEncoding( string $encoding ) : \Zend_XmlRpc_Server

Set encoding

Parameters
Name Type Description
$encoding string
Returns
Type Description
\Zend_XmlRpc_Server
methodpublicsetPersistence( mixed $mode ) : void

Do nothing; persistence is handled via {@link Zend_XmlRpc_Server_Cache}

Parameters
Name Type Description
$mode mixed
methodpublicsetRequest( string|\Zend_XmlRpc_Request $request ) : \Zend_XmlRpc_Server

Set the request object

Parameters
Name Type Description
$request string|\Zend_XmlRpc_Request
Returns
Type Description
\Zend_XmlRpc_Server
Throws
Exception Description
\Zend_XmlRpc_Server_Exception on invalid request class or object
methodpublicsetResponseClass( string $class ) : boolean

Set the class to use for the response

Parameters
Name Type Description
$class string
Returns
Type Description
boolean True if class was set, false if not
Documentation was generated by DocBlox 0.15.1.