本文整理汇总了PHP中Zend_XmlRpc_Response::getReturnValue方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_XmlRpc_Response::getReturnValue方法的具体用法?PHP Zend_XmlRpc_Response::getReturnValue怎么用?PHP Zend_XmlRpc_Response::getReturnValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_XmlRpc_Response
的用法示例。
在下文中一共展示了Zend_XmlRpc_Response::getReturnValue方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testLoadXml
/**
* loadXml() test
*
* Call as method call
*
* Expects:
* - response:
*
* Returns: boolean
*/
public function testLoadXml()
{
$dom = new DOMDocument('1.0', 'UTF-8');
$response = $dom->appendChild($dom->createElement('methodResponse'));
$params = $response->appendChild($dom->createElement('params'));
$param = $params->appendChild($dom->createElement('param'));
$value = $param->appendChild($dom->createElement('value'));
$value->appendChild($dom->createElement('string', 'Return value'));
$xml = $dom->saveXML();
$parsed = $this->_response->loadXml($xml);
$this->assertTrue($parsed, $xml);
$this->assertEquals('Return value', $this->_response->getReturnValue());
}
示例2: call
/**
* Send an XML-RPC request to the service (for a specific method)
*
* @param string $method Name of the method we want to call
* @param array $params Array of parameters for the method
* @throws Zend_Http_Client_FaultException
*/
public function call($method, $params = array())
{
// if ('system.' != substr($method, 0, 7)) {
//
// // Ensure empty array/struct params are cast correctly
//
// $signatures = $this->getIntrospector()->getMethodSignature($method);
// foreach ($params as $key => $param) {
// if (is_array($param) && empty($param)) {
// $type = 'array';
// foreach ($signatures as $signature) {
// if (!is_array($signature)) {
// continue;
// }
// if (array_key_exists($key + 1, $signature)) {
// $type = $signature[$key + 1];
// $type = (in_array($type, array('array', 'struct'))) ? $type : 'array';
// break;
// }
// }
// $params[$key] = array(
// 'type' => $type,
// 'value' => $param
// );
// }
// }
// }
$request = new Zend_XmlRpc_Request($method, $params);
$this->doRequest($request);
if ($this->_lastResponse->isFault()) {
$fault = $this->_lastResponse->getFault();
throw new Zend_XmlRpc_Client_FaultException($fault->getMessage(), $fault->getCode());
}
return $this->_lastResponse->getReturnValue();
}
示例3: parse
/**
* {@inheritdoc}
*/
public function parse($xmlString)
{
$response = new \Zend_XmlRpc_Response();
try {
$response->loadXml($xmlString);
} catch (\Exception $e) {
throw new ParserException($e->getMessage(), $e->getCode(), $e);
}
if ($response->isFault()) {
$fault = $response->getFault();
throw new FaultException($fault->getMessage(), $fault->getCode());
}
$result = $response->getReturnValue();
$toBeVisited = [&$result];
while (isset($toBeVisited[0]) && ($value =& $toBeVisited[0])) {
$type = gettype($value);
if ($type === 'array') {
foreach ($value as &$element) {
$toBeVisited[] =& $element;
}
reset($value);
// Reset all array pointers
}
array_shift($toBeVisited);
}
return $result;
}
示例4: call
/**
* Send an XML-RPC request to the service (for a specific method)
*
* @param string $method Name of the method we want to call
* @param array $params Array of parameters for the method
* @throws Zend_Http_Client_FaultException
*/
public function call($method, $params = array())
{
$request = new Zend_XmlRpc_Request($method, $params);
$this->doRequest($request);
if ($this->_lastResponse->isFault()) {
$fault = $this->_lastResponse->getFault();
throw new Zend_XmlRpc_Client_FaultException($fault->getMessage(), $fault->getCode());
}
return $this->_lastResponse->getReturnValue();
}
示例5: testDoesNotAllowExternalEntities
/**
* @group ZF-12293
*/
public function testDoesNotAllowExternalEntities()
{
$payload = file_get_contents(dirname(__FILE__) . '/_files/ZF12293-response.xml');
$payload = sprintf($payload, 'file://' . realpath(dirname(__FILE__) . '/_files/ZF12293-payload.txt'));
$this->_response->loadXml($payload);
$value = $this->_response->getReturnValue();
$this->assertTrue(empty($value));
if (is_string($value)) {
$this->assertNotContains('Local file inclusion', $value);
}
}
示例6: call
/**
* Send an XML-RPC request to the service (for a specific method)
*
* @param string $method Name of the method we want to call
* @param array $params Array of parameters for the method
* @param boolean $asResponseObject Return it as a response object instead of PHP native?
* @throws Zend_Http_Client_FaultException
*/
public function call($method, $params = array(), $asResponseObject = false)
{
$request = new Zend_XmlRpc_Request();
$request->setMethod($method);
$request->setParams($params);
$this->doRequest($request);
if ($asResponseObject) {
return $this->_lastResponse;
} else {
if ($this->_lastResponse->isFault()) {
$fault = $this->_lastResponse->getFault();
throw new Zend_XmlRpc_Client_FaultException($fault->getMessage(), $fault->getCode());
}
return $this->_lastResponse->getReturnValue();
}
}
示例7: call
/**
* Send an XML-RPC request to the service (for a specific method)
*
* @param string $method Name of the method we want to call
* @param array $params Array of parameters for the method
* @throws Zend_Http_Client_FaultException
*/
public function call($method, $params = array())
{
if ('system.' != substr($method, 0, 7)) {
// Ensure empty array/struct params are cast correctly
// If system.* methods are not available, bypass. (ZF-2978)
$success = true;
try {
$signatures = $this->getIntrospector()->getMethodSignature($method);
} catch (Zend_XmlRpc_Exception $e) {
$success = false;
}
if ($success) {
foreach ($params as $key => $param) {
if (is_array($param) && empty($param)) {
$type = 'array';
foreach ($signatures as $signature) {
if (!is_array($signature)) {
continue;
}
if (array_key_exists($key + 1, $signature)) {
$type = $signature[$key + 1];
$type = in_array($type, array('array', 'struct')) ? $type : 'array';
break;
}
}
$params[$key] = array('type' => $type, 'value' => $param);
}
}
}
}
$request = new Zend_XmlRpc_Request($method, $params);
$this->doRequest($request);
if ($this->_lastResponse->isFault()) {
$fault = $this->_lastResponse->getFault();
throw new Zend_XmlRpc_Client_FaultException($fault->getMessage(), $fault->getCode());
}
return $this->_lastResponse->getReturnValue();
}
示例8: call
/**
* Send an XML-RPC request to the service (for a specific method)
*
* @param string $method Name of the method we want to call
* @param array $params Array of parameters for the method
* @return mixed
* @throws Zend_XmlRpc_Client_FaultException
*/
public function call($method, $params = array())
{
if (!$this->skipSystemLookup() && 'system.' != substr($method, 0, 7)) {
// Ensure empty array/struct params are cast correctly
// If system.* methods are not available, bypass. (ZF-2978)
$success = true;
try {
$signatures = $this->getIntrospector()->getMethodSignature($method);
} catch (Zend_XmlRpc_Exception $e) {
$success = false;
}
if ($success) {
$validTypes = array(Zend_XmlRpc_Value::XMLRPC_TYPE_ARRAY, Zend_XmlRpc_Value::XMLRPC_TYPE_BASE64, Zend_XmlRpc_Value::XMLRPC_TYPE_BOOLEAN, Zend_XmlRpc_Value::XMLRPC_TYPE_DATETIME, Zend_XmlRpc_Value::XMLRPC_TYPE_DOUBLE, Zend_XmlRpc_Value::XMLRPC_TYPE_I4, Zend_XmlRpc_Value::XMLRPC_TYPE_INTEGER, Zend_XmlRpc_Value::XMLRPC_TYPE_NIL, Zend_XmlRpc_Value::XMLRPC_TYPE_STRING, Zend_XmlRpc_Value::XMLRPC_TYPE_STRUCT);
if (!is_array($params)) {
$params = array($params);
}
foreach ($params as $key => $param) {
if ($param instanceof Zend_XmlRpc_Value) {
continue;
}
$type = Zend_XmlRpc_Value::AUTO_DETECT_TYPE;
foreach ($signatures as $signature) {
if (!is_array($signature)) {
continue;
}
if (isset($signature['parameters'][$key])) {
$type = $signature['parameters'][$key];
$type = in_array($type, $validTypes) ? $type : Zend_XmlRpc_Value::AUTO_DETECT_TYPE;
}
}
$params[$key] = Zend_XmlRpc_Value::getXmlRpcValue($param, $type);
}
}
}
$request = $this->_createRequest($method, $params);
$this->doRequest($request);
if ($this->_lastResponse->isFault()) {
$fault = $this->_lastResponse->getFault();
/**
* Exception thrown when an XML-RPC fault is returned
* @see Zend_XmlRpc_Client_FaultException
*/
#require_once 'Zend/XmlRpc/Client/FaultException.php';
throw new Zend_XmlRpc_Client_FaultException($fault->getMessage(), $fault->getCode());
}
return $this->_lastResponse->getReturnValue();
}
示例9: testNilResponseFromXmlRpcServer
/**
* @group ZF-5404
*/
public function testNilResponseFromXmlRpcServer()
{
$rawResponse = <<<EOD
<methodResponse><params><param><value><array><data><value><struct><member><name>id</name><value><string>1</string></value></member><member><name>name</name><value><string>birdy num num!</string></value></member><member><name>description</name><value><nil/></value></member></struct></value></data></array></value></param></params></methodResponse>
EOD;
try {
$response = new Zend_XmlRpc_Response();
$ret = $response->loadXml($rawResponse);
} catch (Exception $e) {
$this->fail("Parsing the response should not throw an exception.");
}
$this->assertTrue($ret);
$this->assertEquals(array(0 => array('id' => 1, 'name' => 'birdy num num!', 'description' => null)), $response->getReturnValue());
}