<book lang="en">
<title>XML-RPC for PHP</title>
- <subtitle>version 3.0.0 beta</subtitle>
+ <subtitle>version 3.0.0</subtitle>
<bookinfo>
- <date>Sep 5, 2009</date>
+ <date>June 15, 2014</date>
<authorgroup>
<author>
functions and methods please take a look at the source code of the
library, which is quite thoroughly commented in javadoc-like form.</para>
+ <sect1>
+ <title>3.0.0</title>
+
+ <para><emphasis>Note:</emphasis> this is the last release of the library that will support PHP 5.1 and up.
+ Future releases will target php 5.3 as minimum supported version.</para>
+
+ <para><itemizedlist>
+ <listitem>
+ <para>when using curl and keepalive, reset curl handle if we did not get back an http 200 response (eg a 302)</para>
+ </listitem>
+
+ <listitem>
+ <para>omit port on http 'Host' header if it is 80</para>
+ </listitem>
+
+ <listitem>
+ <para>test suite allows interrogating https servers ignoring their certs</para>
+ </listitem>
+
+ <listitem>
+ <para>method setAcceptedCompression was failing to disable reception of compressed responses if the
+ client supported them</para>
+ </listitem>
+
+ </itemizedlist></para>
+ </sect1>
+
<sect1>
<title>3.0.0 beta</title>
<para>The <function>wrap_php_function</function> and
<function>wrap_xmlrpc_method</function> functions have been moved
out of the base library file <filename>xmlrpc.inc</filename> into
- a file of their own: <filename>xmlrpc_wrappers.inc</filename>. You
+ a file of their own: <filename>xmlrpc_wrappers.php</filename>. You
will have to include() / require() it in your scripts if you have
been using those functions. For increased security, the automatic
rebuilding of php object instances out of received xmlrpc structs
<code>wrap_php_function</code> and <code>wrap_xmlrpc_method</code>,
and has many caveats, with php being a typeless language and
all...</para>
-
- <para>With PHP versions lesser than 5.0.3 wrapping of php functions
- into xmlrpc methods is not supported yet.</para>
</listitem>
<listitem>
configuration.</para>
<para>The <emphasis>minimum supported</emphasis> PHP version is
- 5.0.</para>
-
- <para>Automatic generation of xml-rpc methods from php functions is only
- supported with PHP version 5.0.3 and later (note that the lib will
- generate some warnings with PHP 5 in strict error reporting mode).</para>
+ 5.3.</para>
<para>If you wish to use SSL or HTTP 1.1 to communicate with remote
servers, you need the "curl" extension compiled into your PHP
</glossentry>
<glossentry>
- <glossterm>lib/xmlrpc_wrappers.inc</glossterm>
+ <glossterm>lib/xmlrpc_wrappers.php</glossterm>
<glossdef>
<para>helper functions to "automagically" convert plain php
</glossentry>
<glossentry>
- <glossterm>demo/demo1.txt, demo/demo2.txt, demo/demo3.txt</glossterm>
+ <glossterm>demo/demo1.xml, demo/demo2.xml, demo/demo3.xml</glossterm>
<glossdef>
<para>XML-RPC responses captured in a file for testing purposes (you
<para>Examples:</para>
<programlisting language="php">
-$myInt = new xmlrpcvalue(1267, "int");
-$myString = new xmlrpcvalue("Hello, World!", "string");
-$myBool = new xmlrpcvalue(1, "boolean");
-$myString2 = new xmlrpcvalue(1.24, "string"); // note: this will serialize a php float value as xmlrpc string
+$myInt = new xmlrpcval(1267, "int");
+$myString = new xmlrpcval("Hello, World!", "string");
+$myBool = new xmlrpcval(1, "boolean");
+$myString2 = new xmlrpcval(1.24, "string"); // note: this will serialize a php float value as xmlrpc string
</programlisting>
<para>The fourth constructor form can be used to compose complex
<function>parseResponse.</function></para>
<para>This method is useful to construct responses from pre-prepared
- files (see files <literal>demo1.txt, demo2.txt, demo3.txt</literal>
+ files (see files <literal>demo1.xml, demo2.xml, demo3.xml</literal>
in this distribution). It processes any HTTP headers it finds, and
does not close the file handle.</para>
</sect3>
transparently carried out by the lib, while datetime vals are passed
around as strings).</para>
- <para>Known limitations: requires PHP 5.0.3 +; only works for
+ <para>Known limitations: only works for
user-defined functions, not for PHP internal functions (reflection
does not support retrieving number/type of params for those); the
wrapped php function will not be able to programmatically return an
<para>PHP-XMLRPC only supports the ISO 8859-1 and UTF8 character sets.
The net result of this situation is that those extra characters will not
be properly encoded, and will be received at the other end of the
- XML-RPC tranmission as "garbled data". Unfortunately the library cannot
+ XML-RPC transmission as "garbled data". Unfortunately the library cannot
provide real support for CP1252 because of limitations in the PHP 4 xml
parser. Luckily, we tried our best to support this character set anyway,
and, since version 2.2.1, there is some form of support, left commented
<filename>xmlrpc.inc</filename> (you can search for the string "1252"),
then set <code>$GLOBALS['xmlrpc_internalencoding']='CP1252';</code>
Please note that all incoming data will then be fed to your application
- as UTF-8 to avoid any potentail data loss.</para>
+ as UTF-8 to avoid any potential data loss.</para>
</sect1>
<sect1>