<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Agesort demo</title></head>
<body>
<h1>Agesort demo</h1>
<p></p>
<?php
-include "xmlrpc.inc";
+
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
$inAr = array("Dave" => 24, "Edd" => 45, "Joe" => 37, "Fred" => 27);
-reset($inAr);
print "This is the input data:<br/><pre>";
-while (list($key, $val) = each($inAr)) {
+foreach($inAr as $key => $val) {
print $key . ", " . $val . "\n";
}
print "</pre>";
// create parameters from the input array: an xmlrpc array of xmlrpc structs
$p = array();
foreach ($inAr as $key => $val) {
- $p[] = new xmlrpcval(array("name" => new xmlrpcval($key),
- "age" => new xmlrpcval($val, "int")), "struct");
+ $p[] = new PhpXmlRpc\Value(
+ array(
+ "name" => new PhpXmlRpc\Value($key),
+ "age" => new PhpXmlRpc\Value($val, "int")
+ ),
+ "struct"
+ );
}
-$v = new xmlrpcval($p, "array");
+$v = new PhpXmlRpc\Value($p, "array");
print "Encoded into xmlrpc format it looks like this: <pre>\n" . htmlentities($v->serialize()) . "</pre>\n";
// create client and message objects
-$f = new xmlrpcmsg('examples.sortByAge', array($v));
-$c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
+$req = new PhpXmlRpc\Request('examples.sortByAge', array($v));
+$client = new PhpXmlRpc\Client("http://phpxmlrpc.sourceforge.net/server.php");
// set maximum debug level, to have the complete communication printed to screen
-$c->setDebug(2);
+$client->setDebug(2);
// send request
print "Now sending request (detailed debug info follows)";
-$r = &$c->send($f);
+$resp = $client->send($req);
// check response for errors, and take appropriate action
-if (!$r->faultCode()) {
+if (!$resp->faultCode()) {
print "The server gave me these results:<pre>";
- $v = $r->value();
- $max = $v->arraysize();
+ $value = $resp->value();
+ $max = $value->arraysize();
for ($i = 0; $i < $max; $i++) {
- $rec = $v->arraymem($i);
- $n = $rec->structmem("name");
- $a = $rec->structmem("age");
- print htmlspecialchars($n->scalarval()) . ", " . htmlspecialchars($a->scalarval()) . "\n";
+ $struct = $value->arraymem($i);
+ $name = $struct->structmem("name");
+ $age = $struct->structmem("age");
+ print htmlspecialchars($name->scalarval()) . ", " . htmlspecialchars($age->scalarval()) . "\n";
}
print "<hr/>For nerds: I got this value back<br/><pre>" .
- htmlentities($r->serialize()) . "</pre><hr/>\n";
+ htmlentities($resp->serialize()) . "</pre><hr/>\n";
} else {
print "An error occurred:<pre>";
- print "Code: " . htmlspecialchars($r->faultCode()) .
- "\nReason: '" . htmlspecialchars($r->faultString()) . '\'</pre><hr/>';
+ print "Code: " . htmlspecialchars($resp->faultCode()) .
+ "\nReason: '" . htmlspecialchars($resp->faultString()) . '\'</pre><hr/>';
}
?>
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Getstatename demo</title></head>
<body>
<h1>Getstatename demo</h1>
<h3>The code demonstrates usage of the php_xmlrpc_encode function</h3>
<?php
-include "xmlrpc.inc";
-// Play nice to PHP 5 installations with REGISTER_LONG_ARRAYS off
-if (!isset($HTTP_POST_VARS) && isset($_POST)) {
- $HTTP_POST_VARS = $_POST;
-}
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
-if (isset($HTTP_POST_VARS["stateno"]) && $HTTP_POST_VARS["stateno"] != "") {
- $stateno = (integer)$HTTP_POST_VARS["stateno"];
- $f = new xmlrpcmsg('examples.getStateName',
- array(php_xmlrpc_encode($stateno))
+if (isset($_POST["stateno"]) && $_POST["stateno"] != "") {
+ $stateNo = (integer)$_POST["stateno"];
+ $encoder = new PhpXmlRpc\Encoder();
+ $req = new PhpXmlRpc\Request('examples.getStateName',
+ array($encoder->encode($stateNo))
);
- print "<pre>Sending the following request:\n\n" . htmlentities($f->serialize()) . "\n\nDebug info of server data follows...\n\n";
- $c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
- $c->setDebug(1);
- $r = &$c->send($f);
+ print "Sending the following request:<pre>\n\n" . htmlentities($req->serialize()) . "\n\n</pre>Debug info of server data follows...\n\n";
+ $client = new PhpXmlRpc\Client("http://phpxmlrpc.sourceforge.net/server.php");
+ $client->setDebug(1);
+ $r = $client->send($req);
if (!$r->faultCode()) {
$v = $r->value();
- print "</pre><br/>State number " . $stateno . " is "
- . htmlspecialchars($v->scalarval()) . "<br/>";
+ print "<br/>State number <b>" . $stateNo . "</b> is <b>"
+ . htmlspecialchars($v->scalarval()) . "</b><br/>";
// print "<HR>I got this value back<BR><PRE>" .
// htmlentities($r->serialize()). "</PRE><HR>\n";
} else {
. " Reason: '" . htmlspecialchars($r->faultString()) . "'</pre><br/>";
}
} else {
- $stateno = "";
+ $stateNo = "";
}
print "<form action=\"client.php\" method=\"POST\">
-<input name=\"stateno\" value=\"" . $stateno . "\"><input type=\"submit\" value=\"go\" name=\"submit\"></form>
+<input name=\"stateno\" value=\"" . $stateNo . "\"><input type=\"submit\" value=\"go\" name=\"submit\"></form>
<p>Enter a state number to query its name</p>";
?>
<?php
-include "xmlrpc.inc";
-$mydir = "/demo";
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
+$mydir = "demo/";
// define some utility functions
function bomb()
function dispatch($client, $method, $args)
{
- $msg = new xmlrpcmsg($method, $args);
- $resp = $client->send($msg);
+ $req = new PhpXmlRpc\Request($method, $args);
+ $resp = $client->send($req);
if (!$resp) {
print "<p>IO error: " . $client->errstr . "</p>";
bomb();
bomb();
}
- return php_xmlrpc_decode($resp->value());
+ $encoder = new PhpXmlRpc\Encoder();
+ return $encoder->decode($resp->value());
}
// create client for discussion server
-$dclient = new xmlrpc_client("${mydir}/discuss.php",
- "xmlrpc.usefulinc.com", 80);
+$dclient = new PhpXmlRpc\Client("http://xmlrpc.usefulinc.com/${mydir}discuss.php");
// check if we're posting a comment, and send it if so
@$storyid = $_POST["storyid"];
// print "Returning to " . $HTTP_POST_VARS["returnto"];
$res = dispatch($dclient, "discuss.addComment",
- array(new xmlrpcval($storyid),
- new xmlrpcval(stripslashes(@$_POST["name"])),
- new xmlrpcval(stripslashes(@$_POST["commenttext"])),));
+ array(new PhpXmlRpc\Value($storyid),
+ new PhpXmlRpc\Value(stripslashes(@$_POST["name"])),
+ new PhpXmlRpc\Value(stripslashes(@$_POST["commenttext"])),));
// send the browser back to the originating page
Header("Location: ${mydir}/comment.php?catid=" .
$chanid = 0;
}
-$client = new xmlrpc_client("/meerkat/xml-rpc/server.php",
- "www.oreillynet.com", 80);
+$client = new PhpXmlRpc\Client("http://www.oreillynet.com/meerkat/xml-rpc/server.php");
if (@$_GET["comment"] &&
(!@$_GET["cdone"])
$categories = dispatch($client, "meerkat.getCategories", array());
if ($catid) {
$sources = dispatch($client, "meerkat.getChannelsByCategory",
- array(new xmlrpcval($catid, "int")));
+ array(new PhpXmlRpc\Value($catid, "int")));
}
if ($chanid) {
$stories = dispatch($client, "meerkat.getItems",
- array(new xmlrpcval(
+ array(new PhpXmlRpc\Value(
array(
- "channel" => new xmlrpcval($chanid, "int"),
- "ids" => new xmlrpcval(1, "int"),
- "descriptions" => new xmlrpcval(200, "int"),
- "num_items" => new xmlrpcval(5, "int"),
- "dates" => new xmlrpcval(0, "int"),
+ "channel" => new PhpXmlRpc\Value($chanid, "int"),
+ "ids" => new PhpXmlRpc\Value(1, "int"),
+ "descriptions" => new PhpXmlRpc\Value(200, "int"),
+ "num_items" => new PhpXmlRpc\Value(5, "int"),
+ "dates" => new PhpXmlRpc\Value(0, "int"),
), "struct")));
}
?>
print "</tr>\n";
// now look for existing comments
$res = dispatch($dclient, "discuss.getComments",
- array(new xmlrpcval($v['id'])));
+ array(new PhpXmlRpc\Value($v['id'])));
if (sizeof($res) > 0) {
print "<tr><td bgcolor=\"#dddddd\"><p><b><i>" .
"Comments on this story:</i></b></p>";
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Introspect demo</title></head>
<body>
<h1>Introspect demo</h1>
<h2>Query server for available methods and their description</h2>
<h3>The code demonstrates usage of multicall and introspection methods</h3>
<?php
-include "xmlrpc.inc";
+
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
function display_error($r)
{
print "An error occurred: ";
. " Reason: '" . $r->faultString() . "'<br/>";
}
// 'new style' client constructor
-$c = new xmlrpc_client("http://phpxmlrpc.sourceforge.net/server.php");
-print "<h3>methods available at http://" . $c->server . $c->path . "</h3>\n";
-$m = new xmlrpcmsg('system.listMethods');
-$r = &$c->send($m);
-if ($r->faultCode()) {
- display_error($r);
+$client = new PhpXmlRpc\Client("http://phpxmlrpc.sourceforge.net/server.php");
+print "<h3>methods available at http://" . $client->server . $client->path . "</h3>\n";
+$req = new PhpXmlRpc\Request('system.listMethods');
+$resp = $client->send($req);
+if ($resp->faultCode()) {
+ display_error($resp);
} else {
- $v = $r->value();
+ $v = $resp->value();
for ($i = 0; $i < $v->arraysize(); $i++) {
$mname = $v->arraymem($i);
print "<h4>" . $mname->scalarval() . "</h4>\n";
// build messages first, add params later
- $m1 = new xmlrpcmsg('system.methodHelp');
- $m2 = new xmlrpcmsg('system.methodSignature');
- $val = new xmlrpcval($mname->scalarval(), "string");
+ $m1 = new PhpXmlRpc\Request('system.methodHelp');
+ $m2 = new PhpXmlRpc\Request('system.methodSignature');
+ $val = new PhpXmlRpc\Value($mname->scalarval(), "string");
$m1->addParam($val);
$m2->addParam($val);
// send multiple messages in one pass.
// If server does not support multicall, client will fall back to 2 separate calls
$ms = array($m1, $m2);
- $rs = &$c->send($ms);
+ $rs = $client->send($ms);
if ($rs[0]->faultCode()) {
display_error($rs[0]);
} else {
<?php
// Allow users to see the source of this file even if PHP is not configured for it
-if ((isset($HTTP_GET_VARS['showSource']) && $HTTP_GET_VARS['showSource']) ||
- (isset($_GET['showSource']) && $_GET['showSource'])
-) {
+if (isset($_GET['showSource']) && $_GET['showSource']) {
highlight_file(__FILE__);
die();
}
?>
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Mail demo</title></head>
<body>
<h1>Mail demo</h1>
href="../server/server.php?showSource=1">server.php</a> included with the library (look for the 'mail_send'
method)</p>
<?php
-include "xmlrpc.inc";
-// Play nice to PHP 5 installations with REGISTER_LONG_ARRAYS off
-if (!isset($HTTP_POST_VARS) && isset($_POST)) {
- $HTTP_POST_VARS = $_POST;
-}
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
-if (isset($HTTP_POST_VARS["server"]) && $HTTP_POST_VARS["server"]) {
- if ($HTTP_POST_VARS["server"] == "Userland") {
- $XP = "/RPC2";
- $XS = "206.204.24.2";
+if (isset($_POST["server"]) && $_POST["server"]) {
+ if ($_POST["server"] == "Userland") {
+ $server = "http://206.204.24.2/RPC2";
} else {
- $XP = "/xmlrpc/server.php";
- $XS = "pingu.heddley.com";
+ $server = "http://pingu.heddley.com/xmlrpc/server.php";
}
- $f = new xmlrpcmsg('mail.send');
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailto"]));
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailsub"]));
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailmsg"]));
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailfrom"]));
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailcc"]));
- $f->addParam(new xmlrpcval($HTTP_POST_VARS["mailbcc"]));
- $f->addParam(new xmlrpcval("text/plain"));
+ $req = new PhpXmlRpc\Request('mail.send', array(
+ new PhpXmlRpc\Value($_POST["mailto"]),
+ new PhpXmlRpc\Value($_POST["mailsub"]),
+ new PhpXmlRpc\Value($_POST["mailmsg"]),
+ new PhpXmlRpc\Value($_POST["mailfrom"]),
+ new PhpXmlRpc\Value($_POST["mailcc"]),
+ new PhpXmlRpc\Value($_POST["mailbcc"]),
+ new PhpXmlRpc\Value("text/plain")
+ ));
- $c = new xmlrpc_client($XP, $XS, 80);
- $c->setDebug(2);
- $r = &$c->send($f);
- if (!$r->faultCode()) {
+ $client = new PhpXmlRpc\Client($server);
+ $client->setDebug(2);
+ $resp = $client->send($req);
+ if (!$resp->faultCode()) {
print "Mail sent OK<br/>\n";
} else {
print "<fonr color=\"red\">";
print "Mail send failed<br/>\n";
print "Fault: ";
- print "Code: " . htmlspecialchars($r->faultCode()) .
- " Reason: '" . htmlspecialchars($r->faultString()) . "'<br/>";
+ print "Code: " . htmlspecialchars($resp->faultCode()) .
+ " Reason: '" . htmlspecialchars($resp->faultString()) . "'<br/>";
print "</font><br/>";
}
}
* @license code licensed under the BSD License: see file license.txt
*/
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
/**
* Takes a client object, a remote method name, and a variable numbers of
* php values, and calls the method with the supplied parameters. The
return false;
}
- $xmlrpcval_array = array();
+ $valueArray = array();
+ $encoder = new PhpXmlRpc\Encoder();
foreach ($varargs as $parameter) {
- $xmlrpcval_array[] = php_xmlrpc_encode($parameter);
+ $valueArray[] = $encoder->encode($parameter);
}
- return $client->send(new xmlrpcmsg($remote_function_name, $xmlrpcval_array));
+ return $client->send(new PhpXmlRpc\Request($remote_function_name, $valueArray));
}
}
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Which toolkit demo</title></head>
<body>
<h1>Which toolkit demo</h1>
<h2>Query server for toolkit information</h2>
-<h3>The code demonstrates usage of the php_xmlrpc_decode function</h3>
+<h3>The code demonstrates usage of the PhpXmlRpc\Encoder class</h3>
<?php
-include "xmlrpc.inc";
-$f = new xmlrpcmsg('interopEchoTests.whichToolkit', array());
-$c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
-$r = $c->send($f);
-if (!$r->faultCode()) {
- $v = php_xmlrpc_decode($r->value());
+
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
+$req = new PhpXmlRpc\Request('interopEchoTests.whichToolkit', array());
+$client = new PhpXmlRpc\Client("http://phpxmlrpc.sourceforge.net/server.php");
+$resp = $client->send($req);
+if (!$resp->faultCode()) {
+ $encoder = new PhpXmlRpc\Encoder();
+ $value = $encoder->decode($resp->value());
print "<pre>";
- print "name: " . htmlspecialchars($v["toolkitName"]) . "\n";
- print "version: " . htmlspecialchars($v["toolkitVersion"]) . "\n";
- print "docs: " . htmlspecialchars($v["toolkitDocsUrl"]) . "\n";
- print "os: " . htmlspecialchars($v["toolkitOperatingSystem"]) . "\n";
+ print "name: " . htmlspecialchars($value["toolkitName"]) . "\n";
+ print "version: " . htmlspecialchars($value["toolkitVersion"]) . "\n";
+ print "docs: " . htmlspecialchars($value["toolkitDocsUrl"]) . "\n";
+ print "os: " . htmlspecialchars($value["toolkitOperatingSystem"]) . "\n";
print "</pre>";
} else {
print "An error occurred: ";
- print "Code: " . htmlspecialchars($r->faultCode()) . " Reason: '" . htmlspecialchars($r->faultString()) . "'\n";
+ print "Code: " . htmlspecialchars($resp->faultCode()) . " Reason: '" . htmlspecialchars($resp->faultString()) . "'\n";
}
?>
</body>
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Webservice wrappper demo</title></head>
<body>
<h1>Webservice wrappper demo</h1>
<h2>Wrap methods exposed by server into php functions</h2>
<h3>The code demonstrates usage of the most automagic client usage possible:<br/>
- 1) client that returns php values instead of xmlrpcval objects<br/>
+ 1) client that returns php values instead of xmlrpc value objects<br/>
2) wrapping of remote methods into php functions
</h3>
<?php
-include "xmlrpc.inc";
-include "xmlrpc_wrappers.inc";
-$c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
-$c->return_type = 'phpvals'; // let client give us back php values instead of xmlrpcvals
-$r = &$c->send(new xmlrpcmsg('system.listMethods'));
-if ($r->faultCode()) {
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
+$client = new PhpXmlRpc\Client("http://phpxmlrpc.sourceforge.net/server.php");
+$client->return_type = 'phpvals'; // let client give us back php values instead of xmlrpcvals
+$resp = $client->send(new PhpXmlRpc\Request('system.listMethods'));
+if ($resp->faultCode()) {
echo "<p>Server methods list could not be retrieved: error '" . htmlspecialchars($r->faultString()) . "'</p>\n";
} else {
- $testcase = '';
+ $testCase = '';
+ $wrapper = new PhpXmlRpc\Wrapper();
echo "<p>Server methods list retrieved, now wrapping it up...</p>\n<ul>\n";
- foreach ($r->value() as $methodname) {
+ foreach ($resp->value() as $methodName) {
// $r->value is an array of strings
// do not wrap remote server system methods
- if (strpos($methodname, 'system.') !== 0) {
- $funcname = wrap_xmlrpc_method($c, $methodname);
- if ($funcname) {
- echo "<li>Remote server method " . htmlspecialchars($methodname) . " wrapped into php function " . $funcname . "</li>\n";
+ if (strpos($methodName, 'system.') !== 0) {
+ $funcName = $wrapper->wrap_xmlrpc_method($client, $methodName);
+ if ($funcName) {
+ echo "<li>Remote server method " . htmlspecialchars($methodName) . " wrapped into php function " . $funcName . "</li>\n";
} else {
- echo "<li>Remote server method " . htmlspecialchars($methodname) . " could not be wrapped!</li>\n";
+ echo "<li>Remote server method " . htmlspecialchars($methodName) . " could not be wrapped!</li>\n";
}
- if ($methodname == 'examples.getStateName') {
- $testcase = $funcname;
+ if ($methodName == 'examples.getStateName') {
+ $testCase = $funcName;
}
}
}
echo "</ul>\n";
- if ($testcase) {
- echo "Now testing function $testcase: remote method to convert U.S. state number into state name";
- $statenum = 25;
- $statename = $testcase($statenum, 2);
- echo "State number $statenum is " . htmlspecialchars($statename);
+ if ($testCase) {
+ echo "Now testing function $testCase: remote method to convert U.S. state number into state name";
+ $stateNum = 25;
+ $stateName = $testCase($stateNum, 2);
+ echo "State number $stateNum is " . htmlspecialchars($stateName);
}
}
?>
<html>
-<head><title>xmlrpc</title></head>
+<head><title>xmlrpc - Zope test demo</title></head>
<body>
<h1>Zope test demo</h1>
<h3>The code demonstrates usage of basic authentication to connect to the server</h3>
<?php
-include "xmlrpc.inc";
-$f = new xmlrpcmsg('document_src', array());
-$c = new xmlrpc_client("/index_html", "pingu.heddley.com", 9080);
-$c->setCredentials("username", "password");
-$c->setDebug(2);
-$r = $c->send($f);
-if (!$r->faultCode()) {
- $v = $r->value();
- print "I received:" . htmlspecialchars($v->scalarval()) . "<br/>";
+include_once __DIR__ . "/../../src/Autoloader.php";
+PhpXmlRpc\Autoloader::register();
+
+$req = new PhpXmlRpc\Request('document_src', array());
+$client = new PhpXmlRpc\Client("pingu.heddley.com:9080/index_html");
+$client->setCredentials("username", "password");
+$client->setDebug(2);
+$resp = $client->send($req);
+if (!$resp->faultCode()) {
+ $value = $resp->value();
+ print "I received:" . htmlspecialchars($value->scalarval()) . "<br/>";
print "<hr/>I got this value back<br/>pre>" .
- htmlentities($r->serialize()) . "</pre>\n";
+ htmlentities($resp->serialize()) . "</pre>\n";
} else {
print "An error occurred: ";
- print "Code: " . htmlspecialchars($r->faultCode())
- . " Reason: '" . ($r->faultString()) . "'<br/>";
+ print "Code: " . htmlspecialchars($resp->faultCode())
+ . " Reason: '" . ($resp->faultString()) . "'<br/>";
}
?>
</body>
}
// if we generated an error, create an error return response
if ($err) {
- return new xmlrpcresp(0, $xmlrpcerruser, $err);
+ return new PhpXmlRpc\Response(0, $xmlrpcerruser, $err);
} else {
// otherwise, we create the right response
// with the state name
- return new xmlrpcresp(new xmlrpcval($count, "int"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($count, "int"));
}
}
}
// if we generated an error, create an error return response
if ($err) {
- return new xmlrpcresp(0, $xmlrpcerruser, $err);
+ return new PhpXmlRpc\Response(0, $xmlrpcerruser, $err);
} else {
// otherwise, we create the right response
// with the state name
- return new xmlrpcresp(php_xmlrpc_encode($ra));
+ return new PhpXmlRpc\Response(php_xmlrpc_encode($ra));
}
}
-$s = new xmlrpc_server(array(
+$s = new PhpXmlRpc\Server(array(
"discuss.addComment" => array(
"function" => "addcomment",
"signature" => $addcomment_sig,
// create client
$timeout = 0;
$url = php_xmlrpc_decode($m->getParam(0));
- $c = new xmlrpc_client($url);
+ $c = new PhpXmlRpc\Client($url);
if ($m->getNumParams() > 3) {
// we have to set some options onto the client.
// Note that if we do not untaint the received values, warnings might be generated...
}
// build call for remote server
- /// @todo find a weay to forward client info (such as IP) to server, either
+ /// @todo find a way to forward client info (such as IP) to server, either
/// - as xml comments in the payload, or
/// - using std http header conventions, such as X-forwarded-for...
$method = php_xmlrpc_decode($m->getParam(1));
$pars = $m->getParam(2);
- $m = new xmlrpcmsg($method);
+ $m = new PhpXmlRpc\Request($method);
for ($i = 0; $i < $pars->arraySize(); $i++) {
$m->addParam($pars->arraymem($i));
}
}
// run the server
-$server = new xmlrpc_server(
+$server = new PhpXmlRpc\Server(
array(
'xmlrpcproxy.call' => array(
'function' => 'forward_request',
public function phpwarninggenerator($m)
{
$a = $b; // this triggers a warning in E_ALL mode, since $b is undefined
- return new xmlrpcresp(new xmlrpcval(1, 'boolean'));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value(1, 'boolean'));
}
/**
// if we generated an error, create an error return response
if ($err) {
- return new xmlrpcresp(0, $xmlrpcerruser, $err);
+ return new PhpXmlRpc\Response(0, $xmlrpcerruser, $err);
} else {
// otherwise, we create the right response
// with the state name
- return new xmlrpcresp(new xmlrpcval($sname));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($sname));
}
}
$findstate5_sig = wrap_php_function('xmlrpc_server_methods_container::findstate');
-$obj = new xmlrpc_server_methods_container();
+$obj = new PhpXmlRpc\Server_methods_container();
$findstate4_sig = wrap_php_function(array($obj, 'findstate'));
$addtwo_sig = array(array($xmlrpcInt, $xmlrpcInt, $xmlrpcInt));
$s = $m->getParam(0);
$t = $m->getParam(1);
- return new xmlrpcresp(new xmlrpcval($s->scalarval() + $t->scalarval(), "int"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($s->scalarval() + $t->scalarval(), "int"));
}
$addtwodouble_sig = array(array($xmlrpcDouble, $xmlrpcDouble, $xmlrpcDouble));
$s = $m->getParam(0);
$t = $m->getParam(1);
- return new xmlrpcresp(new xmlrpcval($s->scalarval() + $t->scalarval(), "double"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($s->scalarval() + $t->scalarval(), "double"));
}
$stringecho_sig = array(array($xmlrpcString, $xmlrpcString));
$s = $m->getParam(0);
$v = $s->scalarval();
- return new xmlrpcresp(new xmlrpcval($s->scalarval()));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($s->scalarval()));
}
$echoback_sig = array(array($xmlrpcString, $xmlrpcString));
// $m is an incoming message
$s = "I got the following message:\n" . $m->serialize();
- return new xmlrpcresp(new xmlrpcval($s));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($s));
}
$echosixtyfour_sig = array(array($xmlrpcString, $xmlrpcBase64));
// is working as expected
$incoming = $m->getParam(0);
- return new xmlrpcresp(new xmlrpcval($incoming->scalarval(), "string"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($incoming->scalarval(), "string"));
}
$bitflipper_sig = array(array($xmlrpcArray, $xmlrpcArray));
$v = $m->getParam(0);
$sz = $v->arraysize();
- $rv = new xmlrpcval(array(), $xmlrpcArray);
+ $rv = new PhpXmlRpc\Value(array(), $xmlrpcArray);
for ($j = 0; $j < $sz; $j++) {
$b = $v->arraymem($j);
}
}
- return new xmlrpcresp($rv);
+ return new PhpXmlRpc\Response($rv);
}
// Sorting demo
// error string for [if|when] things go wrong
$err = "";
// create the output value
- $v = new xmlrpcval();
+ $v = new PhpXmlRpc\Value();
$agar = array();
if (isset($sno) && $sno->kindOf() == "array") {
$outAr = array();
while (list($key, $val) = each($agesorter_arr)) {
// recreate each struct element
- $outAr[] = new xmlrpcval(array("name" => new xmlrpcval($key),
- "age" => new xmlrpcval($val, "int"),), "struct");
+ $outAr[] = new PhpXmlRpc\Value(array("name" => new PhpXmlRpc\Value($key),
+ "age" => new PhpXmlRpc\Value($val, "int"),), "struct");
}
// add this array to the output value
$v->addArray($outAr);
}
if ($err) {
- return new xmlrpcresp(0, $xmlrpcerruser, $err);
+ return new PhpXmlRpc\Response(0, $xmlrpcerruser, $err);
} else {
- return new xmlrpcresp($v);
+ return new PhpXmlRpc\Response($v);
}
}
}
if ($err) {
- return new xmlrpcresp(0, $xmlrpcerruser, $err);
+ return new PhpXmlRpc\Response(0, $xmlrpcerruser, $err);
} else {
- return new xmlrpcresp(new xmlrpcval("true", $xmlrpcBoolean));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value("true", $xmlrpcBoolean));
}
}
{
global $xmlrpcerruser;
if (function_exists('getallheaders')) {
- return new xmlrpcresp(php_xmlrpc_encode(getallheaders()));
+ return new PhpXmlRpc\Response(php_xmlrpc_encode(getallheaders()));
} else {
$headers = array();
// IIS: poor man's version of getallheaders
}
}
- return new xmlrpcresp(php_xmlrpc_encode($headers));
+ return new PhpXmlRpc\Response(php_xmlrpc_encode($headers));
}
}
setcookie($name, @$cookiedesc['value'], @$cookiedesc['expires'], @$cookiedesc['path'], @$cookiedesc['domain'], @$cookiedesc['secure']);
}
- return new xmlrpcresp(new xmlrpcval(1, 'int'));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value(1, 'int'));
}
$getcookies_sig = array(array($xmlrpcStruct));
$getcookies_doc = 'Sends to client a response containing all http cookies as received in the request (as struct)';
function getcookies($m)
{
- return new xmlrpcresp(php_xmlrpc_encode($_COOKIE));
+ return new PhpXmlRpc\Response(php_xmlrpc_encode($_COOKIE));
}
$v1_arrayOfStructs_sig = array(array($xmlrpcInt, $xmlrpcArray));
}
}
- return new xmlrpcresp(new xmlrpcval($numcurly, "int"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($numcurly, "int"));
}
$v1_easyStruct_sig = array(array($xmlrpcInt, $xmlrpcStruct));
$curly = $sno->structmem("curly");
$num = $moe->scalarval() + $larry->scalarval() + $curly->scalarval();
- return new xmlrpcresp(new xmlrpcval($num, "int"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($num, "int"));
}
$v1_echoStruct_sig = array(array($xmlrpcStruct, $xmlrpcStruct));
{
$sno = $m->getParam(0);
- return new xmlrpcresp($sno);
+ return new PhpXmlRpc\Response($sno);
}
$v1_manyTypes_sig = array(array(
$v1_manyTypes_doc = 'This handler takes six parameters, and returns an array containing all the parameters.';
function v1_manyTypes($m)
{
- return new xmlrpcresp(new xmlrpcval(array(
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value(array(
$m->getParam(0),
$m->getParam(1),
$m->getParam(2),
$first = $ar->arraymem(0);
$last = $ar->arraymem($sz - 1);
- return new xmlrpcresp(new xmlrpcval($first->scalarval() .
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($first->scalarval() .
$last->scalarval(), "string"));
}
$sno = $m->getParam(0);
$v = $sno->scalarval();
- return new xmlrpcresp(new xmlrpcval(array(
- "times10" => new xmlrpcval($v * 10, "int"),
- "times100" => new xmlrpcval($v * 100, "int"),
- "times1000" => new xmlrpcval($v * 1000, "int"),),
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value(array(
+ "times10" => new PhpXmlRpc\Value($v * 10, "int"),
+ "times100" => new PhpXmlRpc\Value($v * 100, "int"),
+ "times1000" => new PhpXmlRpc\Value($v * 1000, "int"),),
"struct"
));
}
$larry = $fools->structmem("larry");
$moe = $fools->structmem("moe");
- return new xmlrpcresp(new xmlrpcval($curly->scalarval() + $larry->scalarval() + $moe->scalarval(), "int"));
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value($curly->scalarval() + $larry->scalarval() + $moe->scalarval(), "int"));
}
$v1_countTheEntities_sig = array(array($xmlrpcStruct, $xmlrpcString));
}
}
- return new xmlrpcresp(new xmlrpcval(array(
- "ctLeftAngleBrackets" => new xmlrpcval($lt, "int"),
- "ctRightAngleBrackets" => new xmlrpcval($gt, "int"),
- "ctAmpersands" => new xmlrpcval($amp, "int"),
- "ctApostrophes" => new xmlrpcval($ap, "int"),
- "ctQuotes" => new xmlrpcval($qu, "int"),),
+ return new PhpXmlRpc\Response(new PhpXmlRpc\Value(array(
+ "ctLeftAngleBrackets" => new PhpXmlRpc\Value($lt, "int"),
+ "ctRightAngleBrackets" => new PhpXmlRpc\Value($gt, "int"),
+ "ctAmpersands" => new PhpXmlRpc\Value($amp, "int"),
+ "ctApostrophes" => new PhpXmlRpc\Value($ap, "int"),
+ "ctQuotes" => new PhpXmlRpc\Value($qu, "int"),),
"struct"
));
}
{
$s = $m->getParam(0);
- return new xmlrpcresp($s);
+ return new PhpXmlRpc\Response($s);
}
function i_echoString($m)
"toolkitOperatingSystem" => isset($SERVER_SOFTWARE) ? $SERVER_SOFTWARE : $_SERVER['SERVER_SOFTWARE'],
);
- return new xmlrpcresp(php_xmlrpc_encode($ret));
+ return new PhpXmlRpc\Response(php_xmlrpc_encode($ret));
}
$o = new xmlrpc_server_methods_container();
$a['examples.php4.getStateName'] = $findstate5_sig;
}
-$s = new xmlrpc_server($a, false);
+$s = new PhpXmlRpc\Server($a, false);
$s->setdebug(3);
$s->compress_response = true;
include_once __DIR__ . "/../lib/xmlrpc.inc";
-$f = new xmlrpcmsg('examples.getStateName');
+$f = new PhpXmlRpc\Request('examples.getStateName');
print "<h3>Testing value serialization</h3>\n";
-$v = new xmlrpcval(23, "int");
+$v = new PhpXmlRpc\Value(23, "int");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
-$v = new xmlrpcval("What are you saying? >> << &&");
+$v = new PhpXmlRpc\Value("What are you saying? >> << &&");
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
-$v = new xmlrpcval(array(
- new xmlrpcval("ABCDEFHIJ"),
- new xmlrpcval(1234, 'int'),
- new xmlrpcval(1, 'boolean'),),
+$v = new PhpXmlRpc\Value(array(
+ new PhpXmlRpc\Value("ABCDEFHIJ"),
+ new PhpXmlRpc\Value(1234, 'int'),
+ new PhpXmlRpc\Value(1, 'boolean'),),
"array"
);
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
-$v = new xmlrpcval(
+$v = new PhpXmlRpc\Value(
array(
- "thearray" => new xmlrpcval(
+ "thearray" => new PhpXmlRpc\Value(
array(
- new xmlrpcval("ABCDEFHIJ"),
- new xmlrpcval(1234, 'int'),
- new xmlrpcval(1, 'boolean'),
- new xmlrpcval(0, 'boolean'),
- new xmlrpcval(true, 'boolean'),
- new xmlrpcval(false, 'boolean'),
+ new PhpXmlRpc\Value("ABCDEFHIJ"),
+ new PhpXmlRpc\Value(1234, 'int'),
+ new PhpXmlRpc\Value(1, 'boolean'),
+ new PhpXmlRpc\Value(0, 'boolean'),
+ new PhpXmlRpc\Value(true, 'boolean'),
+ new PhpXmlRpc\Value(false, 'boolean'),
),
"array"
),
- "theint" => new xmlrpcval(23, 'int'),
- "thestring" => new xmlrpcval("foobarwhizz"),
- "thestruct" => new xmlrpcval(
+ "theint" => new PhpXmlRpc\Value(23, 'int'),
+ "thestring" => new PhpXmlRpc\Value("foobarwhizz"),
+ "thestruct" => new PhpXmlRpc\Value(
array(
- "one" => new xmlrpcval(1, 'int'),
- "two" => new xmlrpcval(2, 'int'),
+ "one" => new PhpXmlRpc\Value(1, 'int'),
+ "two" => new PhpXmlRpc\Value(2, 'int'),
),
"struct"
),
print "<PRE>" . htmlentities($v->serialize()) . "</PRE>";
-$w = new xmlrpcval(array($v, new xmlrpcval("That was the struct!")), "array");
+$w = new PhpXmlRpc\Value(array($v, new PhpXmlRpc\Value("That was the struct!")), "array");
print "<PRE>" . htmlentities($w->serialize()) . "</PRE>";
-$w = new xmlrpcval("Mary had a little lamb,
+$w = new PhpXmlRpc\Value("Mary had a little lamb,
Whose fleece was white as snow,
And everywhere that Mary went
the lamb was sure to go.
print "<PRE>Value of base64 string is: '" . $w->scalarval() . "'</PRE>";
$f->method('');
-$f->addParam(new xmlrpcval("41", "int"));
+$f->addParam(new PhpXmlRpc\Value("41", "int"));
print "<h3>Testing request serialization</h3>\n";
$op = $f->serialize();