From e2d31d8ae762ed3acb0ef5ec21edfcc94293dfaf Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Wed, 12 Apr 2006 08:50:32 +0000 Subject: [PATCH] - cleanup --- lib/XmlRpcClient.php | 60 ++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/lib/XmlRpcClient.php b/lib/XmlRpcClient.php index 886198b..9cdc7bb 100644 --- a/lib/XmlRpcClient.php +++ b/lib/XmlRpcClient.php @@ -10,6 +10,7 @@ * * options = array(array('compress' => true)); * try { * print_r($rpc->listdomain(array('domain' => 'example.com'))); * } catch (Exception $ex) { @@ -37,7 +38,7 @@ class XmlRpcClient * * @var HttpRequest */ - protected $request; + public $request; /** * Constructor @@ -52,27 +53,6 @@ class XmlRpcClient $this->request->setContentType('text/xml'); } - /** - * Proxy to HttpRequest::setOptions() - * - * @param array $options - * @return unknown - */ - public function setOptions(array $options = null) - { - return $this->request->setOptions($options); - } - - /** - * Get associated HttpRequest instance - * - * @return HttpRequest - */ - public function getRequest() - { - return $this->request; - } - /** * RPC method proxy * @@ -86,12 +66,42 @@ class XmlRpcClient if ($this->namespace) { $method = $this->namespace .'.'. $method; } - $this->request->setRawPostData(xmlrpc_encode_request($method, $params)); + + $data = xmlrpc_encode_request($method, $params); + $this->request->setRawPostData($data); + $response = $this->request->send(); if ($response->getResponseCode() != 200) { - throw new Exception($response->getBody(), $response->getResponseCode()); + throw new Exception( + $response->getResponseStatus(), + $response->getResponseCode() + ); + } + $data = xmlrpc_decode($response->getBody(), 'utf-8'); + + if (isset($data['faultCode'], $data['faultString'])) { + throw new Exception( + $data['faultString'], + $data['faultCode'] + ); } - return xmlrpc_decode($response->getBody(), 'utf-8'); + + return $data; + } + + public function __set($what, $params) + { + return call_user_func_array( + array($this->request, "set$what"), + $params + ); + } + + public function __get($what) + { + return call_user_func( + array($this->request, "get$what") + ); } } -- 2.30.2