/**
* Defines how functions in dmap will be invoked: either using an xmlrpc request object
* or plain php values.
* Valid strings are 'xmlrpcvals', 'phpvals' or 'epivals'
*/
public $functions_parameters_type = 'xmlrpcvals';
/**
* Defines how functions in dmap will be invoked: either using an xmlrpc request object
* or plain php values.
* Valid strings are 'xmlrpcvals', 'phpvals' or 'epivals'
*/
public $functions_parameters_type = 'xmlrpcvals';
/**
* Option used for fine-tuning the encoding the php values returned from
* functions registered in the dispatch map when the functions_parameters_types
/**
* Option used for fine-tuning the encoding the php values returned from
* functions registered in the dispatch map when the functions_parameters_types
/**
* Controls behaviour of server when the invoked user function throws an exception:
* 0 = catch it and return an 'internal error' xmlrpc response (default)
/**
* Controls behaviour of server when the invoked user function throws an exception:
* 0 = catch it and return an 'internal error' xmlrpc response (default)
/**
* When set to true, it will enable HTTP compression of the response, in case
* the client has declared its support for compression in the request.
* Set at constructor time.
*/
public $compress_response = false;
/**
* When set to true, it will enable HTTP compression of the response, in case
* the client has declared its support for compression in the request.
* Set at constructor time.
*/
public $compress_response = false;
/**
* List of http compression methods accepted by the server for requests. Set at constructor time.
* NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib
*/
public $accepted_compression = array();
/**
* List of http compression methods accepted by the server for requests. Set at constructor time.
* NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib
*/
public $accepted_compression = array();
* NB: if we can, we will convert the generated response from internal_encoding to the intended one.
* Can be: a supported xml encoding (only UTF-8 and ISO-8859-1 at present, unless mbstring is enabled),
* null (leave unspecified in response, convert output stream to US_ASCII),
* NB: if we can, we will convert the generated response from internal_encoding to the intended one.
* Can be: a supported xml encoding (only UTF-8 and ISO-8859-1 at present, unless mbstring is enabled),
* null (leave unspecified in response, convert output stream to US_ASCII),
* NB: pretty dangerous if you accept every charset and do not have mbstring enabled)
*/
public $response_charset_encoding = '';
* NB: pretty dangerous if you accept every charset and do not have mbstring enabled)
*/
public $response_charset_encoding = '';
*/
protected function parseRequestHeaders(&$data, &$reqEncoding, &$respEncoding, &$respCompression)
{
*/
protected function parseRequestHeaders(&$data, &$reqEncoding, &$respEncoding, &$respCompression)
{
if (!$params) {
return static::_xmlrpcs_multicall_error('noparams');
}
if ($params->kindOf() != 'array') {
return static::_xmlrpcs_multicall_error('notarray');
}
if (!$params) {
return static::_xmlrpcs_multicall_error('noparams');
}
if ($params->kindOf() != 'array') {
return static::_xmlrpcs_multicall_error('notarray');
}
- for ($i = 0; $i < $numParams; $i++) {
- if (!$req->addParam($params->arraymem($i))) {
- $i++;
-
+ foreach($params as $i => $param) {
+ if (!$req->addParam($param)) {
+ $i++; // for error message, we count params from 1
return static::_xmlrpcs_multicall_error(new Response(0,
PhpXmlRpc::$xmlrpcerr['incorrect_params'],
PhpXmlRpc::$xmlrpcstr['incorrect_params'] . ": probable xml error in param " . $i));
return static::_xmlrpcs_multicall_error(new Response(0,
PhpXmlRpc::$xmlrpcerr['incorrect_params'],
PhpXmlRpc::$xmlrpcstr['incorrect_params'] . ": probable xml error in param " . $i));
// let accept a plain list of php parameters, beside a single xmlrpc msg object
if (is_object($req)) {
$calls = $req->getParam(0);
// let accept a plain list of php parameters, beside a single xmlrpc msg object
if (is_object($req)) {
$calls = $req->getParam(0);
- $numCalls = $calls->arraysize();
- for ($i = 0; $i < $numCalls; $i++) {
- $call = $calls->arraymem($i);
- $result[$i] = static::_xmlrpcs_multicall_do_call($server, $call);
+ foreach($calls as $call) {
+ $result[] = static::_xmlrpcs_multicall_do_call($server, $call);