diff options
Diffstat (limited to 'modules/xmlrpc/doc/xmlrpc-server.html')
-rw-r--r-- | modules/xmlrpc/doc/xmlrpc-server.html | 487 |
1 files changed, 0 insertions, 487 deletions
diff --git a/modules/xmlrpc/doc/xmlrpc-server.html b/modules/xmlrpc/doc/xmlrpc-server.html deleted file mode 100644 index da18e0f7..00000000 --- a/modules/xmlrpc/doc/xmlrpc-server.html +++ /dev/null @@ -1,487 +0,0 @@ -<HTML -><HEAD -><TITLE ->xmlrpc_server</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"><LINK -REV="MADE" -HREF="edd@usefulinc.com"><LINK -REL="HOME" -TITLE="XML-RPC for PHP" -HREF="index.html"><LINK -REL="UP" -TITLE="Class documentation" -HREF="apidocs.html"><LINK -REL="PREVIOUS" -TITLE="xmlrpcval" -HREF="xmlrpcval.html"><LINK -REL="NEXT" -TITLE="Helper functions" -HREF="helpers.html"></HEAD -><BODY -CLASS="SECT1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->XML-RPC for PHP: version 1.1</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="xmlrpcval.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Chapter 5. Class documentation</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="helpers.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="XMLRPC-SERVER" -></A ->xmlrpc_server</H1 -><P ->The current implementation of this class has been - kept as simple as possible. The constructor for the server - basically does all the work. Here's a minimal example:</P -><PRE -CLASS="PROGRAMLISTING" -> function foo ($params) { - ... - } - - $s=new xmlrpc_server( array("examples.myFunc" => - array("function" => "foo"))); - </PRE -><P -> This performs everything you need to do with a server. The single - argument is an associative array from method names to function - names. The request is parsed and despatched to the relevant function, - which is reponsible for returning a - <TT -CLASS="CLASSNAME" ->xmlrpcresp</TT -> - object, which gets - serialized back to the caller. See server.php in this distribution for - examples of how to do this. - </P -><P ->Here is a more detailed look at what the handler function - <TT -CLASS="FUNCTION" ->foo</TT -> may do:</P -><PRE -CLASS="PROGRAMLISTING" -> function foo ($params) { - global $xmlrpcerruser; // import user errcode value - - // $params is an Array of xmlrpcval objects - - if ($err) { - // this is an error condition - return new xmlrpcresp(0, $xmlrpcerruser+1, // user error 1 - "There's a problem, Captain"); - } else { - // this is a successful value being returned - return new xmlrpcresp(new xmlrpcval("All's fine!", "string")); - } - } - </PRE -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN658" -></A ->The dispatch map</H2 -><P ->The first argument to the - <TT -CLASS="FUNCTION" ->xmlrpc_server</TT -> constructor is an array, - called the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->dispatch map</I -></SPAN ->. In this array is the - information the server needs to service the XML-RPC methods - you define.</P -><P -> The dispatch map takes the form of an associative array of - associative arrays: the outer array has one entry for each - method, the key being the method name. The corresponding value - is another associative array, which can have the following members: - </P -><P -></P -><UL -><LI -><P -><TT -CLASS="FUNCTION" ->function</TT -> - this entry is - mandatory. It must be a name of a function in the - global scope which services the XML-RPC method.</P -></LI -><LI -><P -><TT -CLASS="FUNCTION" ->signature</TT -> - this entry is an - array containg the possible signatures (see <A -HREF="xmlrpc-server.html#SIGNATURES" ->Signatures</A ->) for the method. If - this entry is present then the server will check that the - correct number and type of parameters have been sent for - this method before dispatching it. - </P -></LI -><LI -><P -> <TT -CLASS="FUNCTION" ->docstring</TT -> - this entry is a string - containing documentation for the method. The - documentation may contain HTML markup. - </P -></LI -></UL -><P ->Look at the <TT -CLASS="FILENAME" ->server.php</TT -> example in the - distribution to see what a dispatch map looks like.</P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="SIGNATURES" -></A ->Method signatures</H2 -><P ->A signature is a description of a method's return type and - its parameter types. A method may have more than one - signature.</P -><P ->Within a server's dispatch map, each method has an array - of possible signatures. Each signature is an array of - types. The first entry is the return type. For instance, the - method <PRE -CLASS="PROGRAMLISTING" ->string examples.getStateName(int)</PRE -> has the signature -<PRE -CLASS="PROGRAMLISTING" ->array($xmlrpcString, $xmlrpcInt)</PRE -> and, assuming that it the only possible signature for - the method, might be used like this in server creation: -<PRE -CLASS="PROGRAMLISTING" ->$findstate_sig=array(array($xmlrpcString, $xmlrpcInt)); - -$findstate_doc='When passed an integer between 1 and 51 returns the -name of a US state, where the integer is the index of that state name -in an alphabetic order.'; - -$s=new xmlrpc_server( array( "examples.getStateName" => - array("function" => "findstate", - "signature" => $findstate_sig, - "docstring" => $findstate_doc)));</PRE -> - - </P -><P ->For convenience the strings representing the XML-RPC types - have been encoded as global variables:<PRE -CLASS="PROGRAMLISTING" ->$xmlrpcI4="i4"; -$xmlrpcInt="int"; -$xmlrpcBoolean="boolean"; -$xmlrpcDouble="double"; -$xmlrpcString="string"; -$xmlrpcDateTime="dateTime.iso8601"; -$xmlrpcBase64="base64"; -$xmlrpcArray="array"; -$xmlrpcStruct="struct";</PRE -></P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN686" -></A ->Delaying the server response</H2 -><P ->You may want to construct the server, but for some reason - not fulfill the request immediately (security verification, for - instance). If you pass the constructor a second argument of - <TT -CLASS="LITERAL" ->0</TT -> this will have the desired effect. You - can then use the <TT -CLASS="FUNCTION" ->service()</TT -> method of the - server class to service the request. For example:</P -><PRE -CLASS="PROGRAMLISTING" ->$s=new xmlrpc_server($myDispMap, 0); - -// ... some code that does other stuff here - -$s->service();</PRE -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN692" -></A ->Fault reporting</H2 -><P ->Fault codes for your servers should start at the - value indicated by - the global <TT -CLASS="LITERAL" ->$xmlrpcerruser</TT -> + 1.</P -><P ->Standard errors returned by the server include:</P -><P -></P -><DIV -CLASS="VARIABLELIST" -><DL -><DT -><TT -CLASS="LITERAL" ->1</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->Unknown method</SPAN -></SPAN -></DT -><DD -><P ->Returned if the server was asked to dispatch a - method it didn't know about</P -></DD -><DT -><TT -CLASS="LITERAL" ->2</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->Invalid return payload</SPAN -></SPAN -></DT -><DD -><P ->This error is actually generated by the client, not - server, code, but signifies that a server returned - something it couldn't understand.</P -></DD -><DT -><TT -CLASS="LITERAL" ->3</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->Incorrect parameters</SPAN -></SPAN -></DT -><DD -><P ->This error is generated when the server has signature(s) - defined for a method, and the parameters passed by the - client do not match any of signatures.</P -></DD -><DT -><TT -CLASS="LITERAL" ->4</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->Can't introspect: method unknown</SPAN -></SPAN -></DT -><DD -><P ->This error is generated by the builtin - <TT -CLASS="FUNCTION" ->system.*</TT -> methods when any kind of - introspection is attempted on a method undefined by the - server.</P -></DD -><DT -><TT -CLASS="LITERAL" ->5</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->Didn't receive 200 OK from remote server</SPAN -></SPAN -></DT -><DD -><P ->This error is generated by the client when a remote server - doesn't return HTTP/1.1 200 OK in response to a - request. A more detailed error report is added onto the - end of the phrase above.</P -></DD -><DT -><TT -CLASS="LITERAL" ->100-</TT -> <SPAN -CLASS="phrase" -><SPAN -CLASS="PHRASE" ->XML parse errors</SPAN -></SPAN -></DT -><DD -><P ->Returns 100 plus the XML parser error code for the - fault that occurred. The - <TT -CLASS="FUNCTION" ->faultString</TT -> returned explains where - the parse error was in the incoming XML stream.</P -></DD -></DL -></DIV -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="xmlrpcval.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="index.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="helpers.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->xmlrpcval</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="apidocs.html" -ACCESSKEY="U" ->Up</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Helper functions</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file |