ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
Request.php
Go to the documentation of this file.
1 <?php
2 
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
4 
5 // LICENSE AGREEMENT. If folded, press za here to unfold and read license {{{
6 
40 // }}}
41 
42 // dependencies {{{
43 require_once 'XML/RPC2/Exception.php';
44 require_once 'XML/RPC2/Backend/Php/Value.php';
45 // }}}
46 
59 {
60  // {{{ properties
61 
67  private $_methodName = '';
68 
74  private $_parameters = null;
75 
81  private $_encoding = 'iso-8859-1';
82 
83  // }}}
84  // {{{ setParameters()
85 
91  public function setParameters($value)
92  {
93  $this->_parameters = $value;
94  }
95 
96  // }}}
97  // {{{ addParameter()
98 
104  public function addParameter($value)
105  {
106  $this->_parameters[] = $value;
107  }
108 
109  // }}}
110  // {{{ getParameters()
111 
117  public function getParameters()
118  {
119  return $this->_parameters;
120  }
121 
122  // }}}
123  // {{{ getMethodName()
124 
130  public function getMethodName()
131  {
132  return $this->_methodName;
133  }
134 
135  // }}}
136  // {{{ constructor
137 
144  function __construct($methodName, $encoding = 'iso-8859-1')
145  {
146  $this->_methodName = $methodName;
147  $this->setParameters(array());
148  $this->_encoding = $encoding;
149  }
150 
151  // }}}
152  // {{{ encode()
153 
159  public function encode()
160  {
161  $methodName = $this->_methodName;
162  $parameters = $this->getParameters();
163 
164  $result = '<?xml version="1.0" encoding="' . $this->_encoding . '"?>';
165  $result .= '<methodCall>';
166  $result .= "<methodName>${methodName}</methodName>";
167  $result .= '<params>';
168  foreach($parameters as $parameter) {
169  $result .= '<param><value>';
170  $result .= ($parameter instanceof XML_RPC2_Backend_Php_Value) ? $parameter->encode() : XML_RPC2_Backend_Php_Value::createFromNative($parameter)->encode();
171  $result .= '</value></param>';
172  }
173  $result .= '</params>';
174  $result .= '</methodCall>';
175  return $result;
176  }
177 
178  // }}}
179  // {{{ createFromDecode()
180 
187  public static function createFromDecode($simpleXML)
188  {
189  $methodName = (string) $simpleXML->methodName;
190  $params = array();
191  foreach ($simpleXML->params->param as $param) {
192  foreach ($param->value as $value) {
193  $params[] = XML_RPC2_Backend_Php_Value::createFromDecode($value)->getNativeValue();
194  }
195  }
196  $result = new XML_RPC2_Backend_Php_Request($methodName);
197  $result->setParameters($params);
198  return $result;
199  }
200 
201  // }}}
202 
203 }
204 
205 ?>