summaryrefslogtreecommitdiff
path: root/inc/IXR_Library.php
diff options
context:
space:
mode:
authorGerrit Uitslag <klapinklapin@gmail.com>2014-10-02 15:06:45 +0200
committerGerrit Uitslag <klapinklapin@gmail.com>2014-10-02 15:06:45 +0200
commita6eab1402c41508e5406f4b8e635d012fa684247 (patch)
tree23746b89950da67edf1bc6c8a4b6bc4102fa85e9 /inc/IXR_Library.php
parent67b5a1455c2585e08f87cc622641b843ad4f2171 (diff)
downloadrpg-a6eab1402c41508e5406f4b8e635d012fa684247.tar.gz
rpg-a6eab1402c41508e5406f4b8e635d012fa684247.tar.bz2
Reformatting IXR library
Diffstat (limited to 'inc/IXR_Library.php')
-rw-r--r--inc/IXR_Library.php236
1 files changed, 119 insertions, 117 deletions
diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php
index c11c959b6..699f8baa8 100644
--- a/inc/IXR_Library.php
+++ b/inc/IXR_Library.php
@@ -20,27 +20,27 @@ class IXR_Value {
/** @var IXR_Value[]|IXR_Date|IXR_Base64|int|bool|double|string */
var $data;
- /** @var string */
+ /** @var string */
var $type;
/**
* @param mixed $data
* @param bool $type
*/
- function IXR_Value ($data, $type = false) {
+ function IXR_Value($data, $type = false) {
$this->data = $data;
- if (!$type) {
+ if(!$type) {
$type = $this->calculateType();
}
$this->type = $type;
- if ($type == 'struct') {
+ if($type == 'struct') {
/* Turn all the values in the array in to new IXR_Value objects */
- foreach ($this->data as $key => $value) {
+ foreach($this->data as $key => $value) {
$this->data[$key] = new IXR_Value($value);
}
}
- if ($type == 'array') {
- for ($i = 0, $j = count($this->data); $i < $j; $i++) {
+ if($type == 'array') {
+ for($i = 0, $j = count($this->data); $i < $j; $i++) {
$this->data[$i] = new IXR_Value($this->data[$i]);
}
}
@@ -50,33 +50,33 @@ class IXR_Value {
* @return string
*/
function calculateType() {
- if ($this->data === true || $this->data === false) {
+ if($this->data === true || $this->data === false) {
return 'boolean';
}
- if (is_integer($this->data)) {
+ if(is_integer($this->data)) {
return 'int';
}
- if (is_double($this->data)) {
+ if(is_double($this->data)) {
return 'double';
}
// Deal with IXR object types base64 and date
- if (is_object($this->data) && is_a($this->data, 'IXR_Date')) {
+ if(is_object($this->data) && is_a($this->data, 'IXR_Date')) {
return 'date';
}
- if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
+ if(is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
return 'base64';
}
// If it is a normal PHP object convert it in to a struct
- if (is_object($this->data)) {
+ if(is_object($this->data)) {
$this->data = get_object_vars($this->data);
return 'struct';
}
- if (!is_array($this->data)) {
+ if(!is_array($this->data)) {
return 'string';
}
/* We have an array - is it an array or a struct ? */
- if ($this->isStruct($this->data)) {
+ if($this->isStruct($this->data)) {
return 'struct';
} else {
return 'array';
@@ -88,32 +88,32 @@ class IXR_Value {
*/
function getXml() {
/* Return XML for this value */
- switch ($this->type) {
+ switch($this->type) {
case 'boolean':
- return '<boolean>'.(($this->data) ? '1' : '0').'</boolean>';
+ return '<boolean>' . (($this->data) ? '1' : '0') . '</boolean>';
break;
case 'int':
- return '<int>'.$this->data.'</int>';
+ return '<int>' . $this->data . '</int>';
break;
case 'double':
- return '<double>'.$this->data.'</double>';
+ return '<double>' . $this->data . '</double>';
break;
case 'string':
- return '<string>'.htmlspecialchars($this->data).'</string>';
+ return '<string>' . htmlspecialchars($this->data) . '</string>';
break;
case 'array':
- $return = '<array><data>'."\n";
- foreach ($this->data as $item) {
- $return .= ' <value>'.$item->getXml()."</value>\n";
+ $return = '<array><data>' . "\n";
+ foreach($this->data as $item) {
+ $return .= ' <value>' . $item->getXml() . "</value>\n";
}
$return .= '</data></array>';
return $return;
break;
case 'struct':
- $return = '<struct>'."\n";
- foreach ($this->data as $name => $value) {
+ $return = '<struct>' . "\n";
+ foreach($this->data as $name => $value) {
$return .= " <member><name>$name</name><value>";
- $return .= $value->getXml()."</value></member>\n";
+ $return .= $value->getXml() . "</value></member>\n";
}
$return .= '</struct>';
return $return;
@@ -133,8 +133,8 @@ class IXR_Value {
function isStruct($array) {
/* Nasty function to check if an array is a struct or not */
$expected = 0;
- foreach ($array as $key => $value) {
- if ((string)$key != (string)$expected) {
+ foreach($array as $key => $value) {
+ if((string) $key != (string) $expected) {
return true;
}
$expected++;
@@ -148,15 +148,15 @@ class IXR_Value {
*/
class IXR_Message {
var $message;
- var $messageType; // methodCall / methodResponse / fault
+ var $messageType; // methodCall / methodResponse / fault
var $faultCode;
var $faultString;
var $methodName;
var $params;
// Current variable stacks
- var $_arraystructs = array(); // The stack used to keep track of the current array/struct
+ var $_arraystructs = array(); // The stack used to keep track of the current array/struct
var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array
- var $_currentStructName = array(); // A stack as well
+ var $_currentStructName = array(); // A stack as well
var $_param;
var $_value;
var $_currentTag;
@@ -168,7 +168,7 @@ class IXR_Message {
/**
* @param string $message
*/
- function IXR_Message ($message) {
+ function IXR_Message($message) {
$this->message = $message;
}
@@ -177,7 +177,7 @@ class IXR_Message {
*/
function parse() {
// first remove the XML declaration
- $this->message = preg_replace('/<\?xml(.*)?\?'.'>/', '', $this->message);
+ $this->message = preg_replace('/<\?xml(.*)?\?' . '>/', '', $this->message);
// workaround for a bug in PHP/libxml2, see http://bugs.php.net/bug.php?id=45996
$this->message = str_replace('&lt;', '&#60;', $this->message);
$this->message = str_replace('&gt;', '&#62;', $this->message);
@@ -185,7 +185,7 @@ class IXR_Message {
$this->message = str_replace('&apos;', '&#39;', $this->message);
$this->message = str_replace('&quot;', '&#34;', $this->message);
$this->message = str_replace("\x0b", ' ', $this->message); //vertical tab
- if (trim($this->message) == '') {
+ if(trim($this->message) == '') {
return false;
}
$this->_parser = xml_parser_create();
@@ -195,7 +195,7 @@ class IXR_Message {
xml_set_object($this->_parser, $this);
xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
xml_set_character_data_handler($this->_parser, 'cdata');
- if (!xml_parse($this->_parser, $this->message)) {
+ if(!xml_parse($this->_parser, $this->message)) {
/* die(sprintf('XML error: %s at line %d',
xml_error_string(xml_get_error_code($this->_parser)),
xml_get_current_line_number($this->_parser))); */
@@ -203,7 +203,7 @@ class IXR_Message {
}
xml_parser_free($this->_parser);
// Grab the error messages, if any
- if ($this->messageType == 'fault') {
+ if($this->messageType == 'fault') {
$this->faultCode = $this->params[0]['faultCode'];
$this->faultString = $this->params[0]['faultString'];
}
@@ -225,7 +225,7 @@ class IXR_Message {
$this->messageType = $tag;
break;
/* Deal with stacks of arrays and structs */
- case 'data': // data is to all intents and puposes more interesting than array
+ case 'data': // data is to all intents and puposes more interesting than array
$this->_arraystructstypes[] = 'array';
$this->_arraystructs[] = array();
break;
@@ -254,17 +254,17 @@ class IXR_Message {
switch($tag) {
case 'int':
case 'i4':
- $value = (int)trim($this->_currentTagContents);
+ $value = (int) trim($this->_currentTagContents);
$this->_currentTagContents = '';
$valueFlag = true;
break;
case 'double':
- $value = (double)trim($this->_currentTagContents);
+ $value = (double) trim($this->_currentTagContents);
$this->_currentTagContents = '';
$valueFlag = true;
break;
case 'string':
- $value = (string)$this->_currentTagContents;
+ $value = (string) $this->_currentTagContents;
$this->_currentTagContents = '';
$valueFlag = true;
break;
@@ -276,14 +276,14 @@ class IXR_Message {
break;
case 'value':
// "If no type is indicated, the type is string."
- if($this->_lastseen == 'value'){
- $value = (string)$this->_currentTagContents;
+ if($this->_lastseen == 'value') {
+ $value = (string) $this->_currentTagContents;
$this->_currentTagContents = '';
$valueFlag = true;
}
break;
case 'boolean':
- $value = (boolean)trim($this->_currentTagContents);
+ $value = (boolean) trim($this->_currentTagContents);
$this->_currentTagContents = '';
$valueFlag = true;
break;
@@ -311,20 +311,20 @@ class IXR_Message {
$this->_currentTagContents = '';
break;
}
- if ($valueFlag) {
+ if($valueFlag) {
/*
if (!is_array($value) && !is_object($value)) {
$value = trim($value);
}
*/
- if (count($this->_arraystructs) > 0) {
+ if(count($this->_arraystructs) > 0) {
// Add value to struct or array
- if ($this->_arraystructstypes[count($this->_arraystructstypes)-1] == 'struct') {
+ if($this->_arraystructstypes[count($this->_arraystructstypes) - 1] == 'struct') {
// Add to struct
- $this->_arraystructs[count($this->_arraystructs)-1][$this->_currentStructName[count($this->_currentStructName)-1]] = $value;
+ $this->_arraystructs[count($this->_arraystructs) - 1][$this->_currentStructName[count($this->_currentStructName) - 1]] = $value;
} else {
// Add to array
- $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
+ $this->_arraystructs[count($this->_arraystructs) - 1][] = $value;
}
} else {
// Just add as a paramater
@@ -340,10 +340,10 @@ class IXR_Message {
*/
class IXR_Server {
var $data;
- /** @var array */
+ /** @var array */
var $callbacks = array();
var $message;
- /** @var array */
+ /** @var array */
var $capabilities;
/**
@@ -352,7 +352,7 @@ class IXR_Server {
*/
function IXR_Server($callbacks = false, $data = false) {
$this->setCapabilities();
- if ($callbacks) {
+ if($callbacks) {
$this->callbacks = $callbacks;
}
$this->setCallbacks();
@@ -363,24 +363,24 @@ class IXR_Server {
* @param bool|string $data
*/
function serve($data = false) {
- if (!$data) {
+ if(!$data) {
$postData = trim(http_get_raw_post_data());
- if (!$postData) {
+ if(!$postData) {
die('XML-RPC server accepts POST requests only.');
}
$data = $postData;
}
$this->message = new IXR_Message($data);
- if (!$this->message->parse()) {
+ if(!$this->message->parse()) {
$this->error(-32700, 'parse error. not well formed');
}
- if ($this->message->messageType != 'methodCall') {
+ if($this->message->messageType != 'methodCall') {
$this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall');
}
$result = $this->call($this->message->methodName, $this->message->params);
// Is the result an error?
- if (is_a($result, 'IXR_Error')) {
+ if(is_a($result, 'IXR_Error')) {
$this->error($result);
}
// Encode the result
@@ -405,12 +405,12 @@ EOD;
/**
* @param string $methodname
- * @param array $args
+ * @param array $args
* @return IXR_Error|mixed
*/
function call($methodname, $args) {
- if (!$this->hasMethod($methodname)) {
- return new IXR_Error(-32601, 'server error. requested method '.$methodname.' does not exist.');
+ if(!$this->hasMethod($methodname)) {
+ return new IXR_Error(-32601, 'server error. requested method ' . $methodname . ' does not exist.');
}
$method = $this->callbacks[$methodname];
// Perform the callback and send the response
@@ -427,16 +427,16 @@ EOD;
$args = (array) $args;
// Are we dealing with a function or a method?
- if (substr($method, 0, 5) == 'this:') {
+ if(substr($method, 0, 5) == 'this:') {
// It's a class method - check it exists
$method = substr($method, 5);
- if (!method_exists($this, $method)) {
- return new IXR_Error(-32601, 'server error. requested class method "'.$method.'" does not exist.');
+ if(!method_exists($this, $method)) {
+ return new IXR_Error(-32601, 'server error. requested class method "' . $method . '" does not exist.');
}
// Call the method
#$result = $this->$method($args);
- $result = call_user_func_array(array(&$this,$method),$args);
- } elseif (substr($method, 0, 7) == 'plugin:') {
+ $result = call_user_func_array(array(&$this, $method), $args);
+ } elseif(substr($method, 0, 7) == 'plugin:') {
list($pluginname, $callback) = explode(':', substr($method, 7), 2);
if(!plugin_isdisabled($pluginname)) {
$plugin = plugin_load('action', $pluginname);
@@ -446,12 +446,12 @@ EOD;
}
} else {
// It's a function - does it exist?
- if (!function_exists($method)) {
- return new IXR_Error(-32601, 'server error. requested function "'.$method.'" does not exist.');
+ if(!function_exists($method)) {
+ return new IXR_Error(-32601, 'server error. requested function "' . $method . '" does not exist.');
}
// Call the function
#$result = $method($args);
- $result = call_user_func_array($method,$args);
+ $result = call_user_func_array($method, $args);
}
return $result;
}
@@ -462,7 +462,7 @@ EOD;
*/
function error($error, $message = false) {
// Accepts either an error object or an error code and message
- if ($message && !is_object($error)) {
+ if($message && !is_object($error)) {
$error = new IXR_Error($error, $message);
}
$this->output($error->getXml());
@@ -484,6 +484,7 @@ EOD;
function hasMethod($method) {
return in_array($method, array_keys($this->callbacks));
}
+
function setCapabilities() {
// Initialises capabilities array
$this->capabilities = array(
@@ -508,6 +509,7 @@ EOD;
function getCapabilities() {
return $this->capabilities;
}
+
function setCallbacks() {
$this->callbacks['system.getCapabilities'] = 'this:getCapabilities';
$this->callbacks['system.listMethods'] = 'this:listMethods';
@@ -530,15 +532,15 @@ EOD;
function multiCall($methodcalls) {
// See http://www.xmlrpc.com/discuss/msgReader$1208
$return = array();
- foreach ($methodcalls as $call) {
+ foreach($methodcalls as $call) {
$method = $call['methodName'];
$params = $call['params'];
- if ($method == 'system.multicall') {
+ if($method == 'system.multicall') {
$result = new IXR_Error(-32800, 'Recursive calls to system.multicall are forbidden');
} else {
$result = $this->call($method, $params);
}
- if (is_a($result, 'IXR_Error')) {
+ if(is_a($result, 'IXR_Error')) {
$return[] = array(
'faultCode' => $result->code,
'faultString' => $result->message
@@ -555,16 +557,16 @@ EOD;
* Class IXR_Request
*/
class IXR_Request {
- /** @var string */
+ /** @var string */
var $method;
- /** @var array */
+ /** @var array */
var $args;
- /** @var string */
+ /** @var string */
var $xml;
/**
* @param string $method
- * @param array $args
+ * @param array $args
*/
function IXR_Request($method, $args) {
$this->method = $method;
@@ -576,7 +578,7 @@ class IXR_Request {
<params>
EOD;
- foreach ($this->args as $arg) {
+ foreach($this->args as $arg) {
$this->xml .= '<param><value>';
$v = new IXR_Value($arg);
$this->xml .= $v->getXml();
@@ -611,7 +613,7 @@ EOD;
*/
class IXR_Client extends DokuHTTPClient {
var $posturl = '';
- /** @var IXR_Message|bool */
+ /** @var IXR_Message|bool */
var $message = false;
/** @var IXR_Error|bool */
var $xmlerror = false;
@@ -623,11 +625,11 @@ class IXR_Client extends DokuHTTPClient {
*/
function IXR_Client($server, $path = false, $port = 80) {
parent::__construct();
- if (!$path) {
+ if(!$path) {
// Assume we have been given a URL instead
$this->posturl = $server;
- }else{
- $this->posturl = 'http://'.$server.':'.$port.$path;
+ } else {
+ $this->posturl = 'http://' . $server . ':' . $port . $path;
}
}
@@ -642,26 +644,26 @@ class IXR_Client extends DokuHTTPClient {
$xml = $request->getXml();
$this->headers['Content-Type'] = 'text/xml';
- if(!$this->sendRequest($this->posturl,$xml,'POST')){
- $this->xmlerror = new IXR_Error(-32300, 'transport error - '.$this->error);
+ if(!$this->sendRequest($this->posturl, $xml, 'POST')) {
+ $this->xmlerror = new IXR_Error(-32300, 'transport error - ' . $this->error);
return false;
}
// Check HTTP Response code
- if($this->status < 200 || $this->status > 206){
- $this->xmlerror = new IXR_Error(-32300, 'transport error - HTTP status '.$this->status);
+ if($this->status < 200 || $this->status > 206) {
+ $this->xmlerror = new IXR_Error(-32300, 'transport error - HTTP status ' . $this->status);
return false;
}
// Now parse what we've got back
$this->message = new IXR_Message($this->resp_body);
- if (!$this->message->parse()) {
+ if(!$this->message->parse()) {
// XML error
$this->xmlerror = new IXR_Error(-32700, 'parse error. not well formed');
return false;
}
// Is the message a fault?
- if ($this->message->messageType == 'fault') {
+ if($this->message->messageType == 'fault') {
$this->xmlerror = new IXR_Error($this->message->faultCode, $this->message->faultString);
return false;
}
@@ -758,7 +760,7 @@ class IXR_Date {
*/
function IXR_Date($time) {
// $time can be a PHP timestamp or an ISO one
- if (is_numeric($time)) {
+ if(is_numeric($time)) {
$this->parseTimestamp($time);
} else {
$this->parseIso($time);
@@ -781,11 +783,11 @@ class IXR_Date {
* @param string $iso
*/
function parseIso($iso) {
- if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/',$iso,$match)){
- $this->year = (int) $match[1];
- $this->month = (int) $match[2];
- $this->day = (int) $match[3];
- $this->hour = (int) $match[5];
+ if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/', $iso, $match)) {
+ $this->year = (int) $match[1];
+ $this->month = (int) $match[2];
+ $this->day = (int) $match[3];
+ $this->hour = (int) $match[5];
$this->minute = (int) $match[6];
$this->second = (int) $match[8];
}
@@ -795,14 +797,14 @@ class IXR_Date {
* @return string
*/
function getIso() {
- return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second;
+ return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second;
}
/**
* @return string
*/
function getXml() {
- return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
+ return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>';
}
/**
@@ -830,7 +832,7 @@ class IXR_Base64 {
* @return string
*/
function getXml() {
- return '<base64>'.base64_encode($this->data).'</base64>';
+ return '<base64>' . base64_encode($this->data) . '</base64>';
}
}
@@ -838,9 +840,9 @@ class IXR_Base64 {
* Class IXR_IntrospectionServer
*/
class IXR_IntrospectionServer extends IXR_Server {
- /** @var array[] */
- var $signatures
- /** @var string[] */;
+ /** @var array[] */
+ var $signatures/** @var string[] */
+ ;
var $help;
function IXR_IntrospectionServer() {
@@ -877,10 +879,10 @@ class IXR_IntrospectionServer extends IXR_Server {
}
/**
- * @param string $method
- * @param string $callback
+ * @param string $method
+ * @param string $callback
* @param string[] $args
- * @param string $help
+ * @param string $help
*/
function addCallback($method, $callback, $args, $help) {
$this->callbacks[$method] = $callback;
@@ -895,60 +897,60 @@ class IXR_IntrospectionServer extends IXR_Server {
*/
function call($methodname, $args) {
// Make sure it's in an array
- if ($args && !is_array($args)) {
+ if($args && !is_array($args)) {
$args = array($args);
}
// Over-rides default call method, adds signature check
- if (!$this->hasMethod($methodname)) {
- return new IXR_Error(-32601, 'server error. requested method "'.$this->message->methodName.'" not specified.');
+ if(!$this->hasMethod($methodname)) {
+ return new IXR_Error(-32601, 'server error. requested method "' . $this->message->methodName . '" not specified.');
}
$method = $this->callbacks[$methodname];
$signature = $this->signatures[$methodname];
$returnType = array_shift($signature);
// Check the number of arguments. Check only, if the minimum count of parameters is specified. More parameters are possible.
// This is a hack to allow optional parameters...
- if (count($args) < count($signature)) {
+ if(count($args) < count($signature)) {
// print 'Num of args: '.count($args).' Num in signature: '.count($signature);
return new IXR_Error(-32602, 'server error. wrong number of method parameters');
}
// Check the argument types
$ok = true;
$argsbackup = $args;
- for ($i = 0, $j = count($args); $i < $j; $i++) {
+ for($i = 0, $j = count($args); $i < $j; $i++) {
$arg = array_shift($args);
$type = array_shift($signature);
- switch ($type) {
+ switch($type) {
case 'int':
case 'i4':
- if (is_array($arg) || !is_int($arg)) {
+ if(is_array($arg) || !is_int($arg)) {
$ok = false;
}
break;
case 'base64':
case 'string':
- if (!is_string($arg)) {
+ if(!is_string($arg)) {
$ok = false;
}
break;
case 'boolean':
- if ($arg !== false && $arg !== true) {
+ if($arg !== false && $arg !== true) {
$ok = false;
}
break;
case 'float':
case 'double':
- if (!is_float($arg)) {
+ if(!is_float($arg)) {
$ok = false;
}
break;
case 'date':
case 'dateTime.iso8601':
- if (!is_a($arg, 'IXR_Date')) {
+ if(!is_a($arg, 'IXR_Date')) {
$ok = false;
}
break;
}
- if (!$ok) {
+ if(!$ok) {
return new IXR_Error(-32602, 'server error. invalid method parameters');
}
}
@@ -961,14 +963,14 @@ class IXR_IntrospectionServer extends IXR_Server {
* @return array|IXR_Error
*/
function methodSignature($method) {
- if (!$this->hasMethod($method)) {
- return new IXR_Error(-32601, 'server error. requested method "'.$method.'" not specified.');
+ if(!$this->hasMethod($method)) {
+ return new IXR_Error(-32601, 'server error. requested method "' . $method . '" not specified.');
}
// We should be returning an array of types
$types = $this->signatures[$method];
$return = array();
- foreach ($types as $type) {
- switch ($type) {
+ foreach($types as $type) {
+ switch($type) {
case 'string':
$return[] = 'string';
break;