phpxmlrpc

A php library for building xmlrpc clients and servers

OTHER License

Downloads
3.4M
Stars
222
Committers
16

Bot releases are hidden (Show)

phpxmlrpc - Minor fixes

Published by gggeek almost 7 years ago

  • fixed: error when using https in non-curl mode

  • fixed: compatibility of tests with php 7.2

  • fixed: html injection in sample code

  • fixed: warnings emitted by the legacy server in xmlrpcs.inc

  • fixed: encoding of php variables of type 'resource' when using xmlrpc_encode in php-compatibility mode

  • fixed: bad html tag in sample code

  • improved: text of error messages

phpxmlrpc - one fix, one new feature

Published by gggeek almost 7 years ago

  • fixed: compatibility with Basic/Digest/NTLM auth when using client in cURL mode (issue #58)

  • improved: added unit tests for Basic and Digest http auth. Also improved tests suite

  • improved: support for doing https calls without resorting to cURL

  • new: allow to force usage of curl for http 1.0 calls, as well as plain socket for https calls, via the method Client::setUseCurl()

phpxmlrpc - Fixed: compatibility with php 7.2

Published by gggeek about 7 years ago

phpxmlrpc - Make old version of the library compatible with php 7

Published by gggeek over 7 years ago

This release makes the library compatible with php 7 by removing the deprecation warnings.
NB moving to version 4 of the library is the recommended option unless you absolutely can not upgrade, as it comes with many improvements.

The only other changes are:

  • addition of a 'setSSLVersion' method to the client class
  • updates to the test suite
phpxmlrpc - Allow DateTimeImmutable objects be detected as date when encoding

Published by gggeek over 7 years ago

Only a small improvement his time around

phpxmlrpc - Fix one bug in the server class

Published by gggeek about 8 years ago

Bug only triggered when not using the compatibility shim with old versions

phpxmlrpc - Add support for i8

Published by gggeek over 8 years ago

Apart from that, no other bugfixes

phpxmlrpc - One bugfix: better latin-1 output

Published by gggeek over 8 years ago

Fix for issue #33: excessive usage of numeric charset entities when converting utf8 to latin-1

phpxmlrpc - v4.0.0

Published by gggeek almost 9 years ago

This release does away with the past and starts a transition to modern-world php.

The minimum required php version has been increased to 5.3, even though we strongly urge you to use more recent versions.

Code has been heavily refactored, taking care to preserve backwards compatibility as much as possible, but some breackage is to be expected.

For anyone upgrading from version 3, two choices are possible:

  • upgrade to the new API
  • a compatibility layer is available
    The details for both possibilities are described in detail in an upgrade document.

PLEASE READ CAREFULLY THE NOTES BELOW to insure a smooth upgrade.

  • new: introduction of namespaces and full OOP.

    All php classes have been renamed and moved to separate files.
    Class autoloading can now be done in accord with the PSR-4 standard.
    All global variables and global functions have been removed.
    Iterating over xmlrpc value objects is now easier thank to support for ArrayAccess and Traversable interfaces.

    Backward compatibility is maintained via lib/xmlrpc.inc, lib/xmlrpcs.inc and lib/xmlrpc_wrappers.inc.
    For more details, head on to doc/api_changes_v4.md

  • changed: the default character encoding delivered from the library to your code is now utf8.
    It can be changed at any time setting a value to PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding

  • improved: the library now accepts requests/responses sent using other character sets than UTF-8/ISO-8859-1/ASCII.
    This only works when the mbstring php extension is enabled.

  • improved: no need to call anymore $client->setSSLVerifyHost(2) to silence a curl warning when using https with recent curl builds

  • improved: the xmlrpcval class now supports the interfaces Countable and IteratorAggregate

  • improved: a specific option allows users to decide the version of SSL to use for https calls.
    This is useful f.e. for the testing suite, when the server target of calls has no proper ssl certificate, and the cURL extension has been compiled with GnuTLS (such as on Travis VMs)

  • improved: the function wrap_php_function() now can be used to wrap closures (it is now a method btw)

  • improved: all wrap_something() functions now return a closure by default instead of a function name

  • improved: debug messages are not html-escaped any more when executing from the command line

  • improved: the library is now tested using Travis ( https://travis-ci.org/ ).
    Tests are executed using all php versions from 5.3 to 7.0 nightly, plus HHVM; code-coverage information is generated using php 5.6 and uploaded to both Code Coverage and Scrutinizer online services

  • improved: phpunit is now installed via composer, not bundled anymore

  • improved: when phpunit is used to generate code-coverage data, the code executed server-side is accounted for

  • improved: the test suite has basic checks for the debugger and demo files

  • improved: more tests in the test suite

  • fixed: the server would not reset the user-set debug messages between subsequent service() calls

  • fixed: the server would not reset previous php error handlers when an exception was thrown by user code and exception_handling set to 2

  • fixed: the server would fail to decode a request with ISO-8859-1 payload and character set declaration in the xml prolog only

  • fixed: the client would fail to decode a response with ISO-8859-1 payload and character set declaration in the xml prolog only

  • fixed: the function decode_xml() would not decode an xml with character set declaration in the xml prolog

  • fixed: the client can now successfully call methods using ISO-8859-1 or UTF-8 characters in their name

  • fixed: the debugger would fail sending a request with ISO-8859-1 payload (it missed the character set declaration).
    It would have a hard time coping with ISO-8859-1 in other fields, such as e.g. the remote method name

  • fixed: the debugger would generate a bad payload via the 'load method synopsis' button for signatures containing NULL or undefined parameters

  • fixed: the debugger would generate a bad payload via the 'load method synopsis' button for methods with multiple signatures

  • improved: the debugger is displayed using UTF-8, making it more useful to debug any kind of service

  • improved: echo all debug messages even when there are characters in them which php deems to be in a wrong encoding; previously those messages would just disappear (this is visible e.g. in the debugger)

  • changed: debug info handling

    • at debug level 1, the rebuilt php objects are not dumped to screen (server-side already did that)
    • at debug level 1, curl communication info are not dumped to screen
    • at debug level 1, the tests echo payloads of failures; at debug level 2 all payloads
  • improved: makefiles have been replaced with a php_based pakefile

  • improved: the source for the manual is stored in asciidoc format, which can be displayed natively by GitHub with nice html formatting. Also the HTML version generated by hand and bundled in tarballs is much nicer to look at than previous versions

  • improved: all php code is now formatted according to the PSR-2 standard

phpxmlrpc - 4.0.0-alpha

Published by gggeek over 9 years ago

This release does away with the past and starts a transition to modern-world php.

Code has been heavily refactored, taking care to preserve backwards compatibility as much as possible, but some breackage is to be expected.

The minimum required php version has been increased to 5.3, even though we strongly urge you to use more recent versions.

PLEASE READ CAREFULLY THE NOTES BELOW to insure a smooth upgrade.

  • new: introduction of namespaces and full OOP.

    All php classes have been renamed and moved to separate files.
    Class autoloading can now be done in accord with the PSR-4 standard.
    All global variables and global functions have been removed.
    Iterating over xmlrpc value objects is now easier thank to support for ArrayAccess and Traversable interfaces.

    Backward compatibility is maintained via lib/xmlrpc.inc, lib/xmlrpcs.inc and lib/xmlrpc_wrappers.inc.
    For more details, head on to doc/api_changes_v4.md

  • changed: the default character encoding delivered from the library to your code is now utf8.
    It can be changed at any time setting a value to PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding

  • improved: the library now accepts requests/responses sent using other character sets than UTF-8/ISO-8859-1/ASCII.
    This only works when the mbstring php extension is enabled.

  • improved: no need to call anymore $client->setSSLVerifyHost(2) to silence a curl warning when using https with recent curl builds

  • improved: the xmlrpcval class now supports the interfaces Countable and IteratorAggregate

  • improved: a specific option allows users to decide the version of SSL to use for https calls.
    This is useful f.e. for the testing suite, when the server target of calls has no proper ssl certificate, and the cURL extension has been compiled with GnuTLS (such as on Travis VMs)

  • improved: the function wrap_php_function() now can be used to wrap closures (it is now a method btw)

  • improved: all wrap_something() functions now return a closure by default instead of a function name

  • improved: debug messages are not html-escaped any more when executing from the command line

  • improved: the library is now tested using Travis ( https://travis-ci.org/ ).
    Tests are executed using all php versions from 5.3 to 7.0 nightly, plus HHVM; code-coverage information is generated using php 5.6 and uploaded to both Code Coverage and Scrutinizer online services

  • improved: phpunit is now installed via composer, not bundled anymore

  • improved: when phpunit is used to generate code-coverage data, the code executed server-side is accounted for

  • improved: the test suite has basic checks for the debugger and demo files

  • improved: more tests in the test suite

  • fixed: the server would not reset the user-set debug messages between subsequent service() calls

  • fixed: the server would not reset previous php error handlers when an exception was thrown by user code and exception_handling set to 2

  • fixed: the server would fail to decode a request with ISO-8859-1 payload and character set declaration in the xml prolog only

  • fixed: the client would fail to decode a response with ISO-8859-1 payload and character set declaration in the xml prolog only

  • fixed: the function decode_xml() would not decode an xml with character set declaration in the xml prolog

  • fixed: the client can now successfully call methods using ISO-8859-1 or UTF-8 characters in their name

  • fixed: the debugger would fail sending a request with ISO-8859-1 payload (it missed the character set declaration).
    It would have a hard time coping with ISO-8859-1 in other fields, such as e.g. the remote method name

  • fixed: the debugger would generate a bad payload via the 'load method synopsis' button for signatures containing NULL or undefined parameters

  • fixed: the debugger would generate a bad payload via the 'load method synopsis' button for methods with multiple signatures

  • improved: the debugger is displayed using UTF-8, making it more useful to debug any kind of service

  • improved: echo all debug messages even when there are characters in them which php deems to be in a wrong encoding;
    previously those messages would just disappear (this is visible e.g. in the debugger)

  • changed: debug info handling

    • at debug level 1, the rebuilt php objects are not dumped to screen (server-side already did that)
    • at debug level 1, curl communication info are not dumped to screen
    • at debug level 1, the tests echo payloads of failures; at debug level 2 all payloads
  • improved: makefiles have been replaced with a php_based pakefile

  • improved: the source for the manual is stored in asciidoc format, which can be displayed natively by GitHub
    with nice html formatting. Also the HTML version generated by hand and bundled in tarballs is much nicer
    to look at than previous versions

  • improved: all php code is now formatted according to the PSR-2 standard

phpxmlrpc - v3.0.1

Published by gggeek over 9 years ago

This release corrects all bugs that have been reported and successfully reproduced since
version 3.0.0:

  • the library does not decode correctly LATIN-1 requests/responses if the character set is not set in the xml prolog
  • the debugger sends incorrect requests when the payload includes LATIN-1 characters
  • the client can not call remote methods which use LATIN-1 or UTF8 characters in their names

Taking baby steps to modern-world php, this release is now tested using Travis ( https://travis-ci.org/gggeek/phpxmlrpc ).

Improved: no need to call anymore $client->setSSLVerifyHost(2) to silence a curl warning when using https with recent curl builds

phpxmlrpc - v3.0.0

Published by gggeek over 10 years ago

After a long wait, version 3.0 is finally declared stable.

All known bugs have been fixed.

PHP version requirements have been bumped up to 5.1.

The next version will most likely undergo some major changes, removing usage of global variables, introducing namespaces and other cleanups...

phpxmlrpc - v3.0.0-beta

Published by gggeek almost 11 years ago

XML-RPC for PHP version 3.0.0 beta - 2009/09/05

This is the first release of the library to only support PHP 5.
Some legacy code has been removed, and support for features such as exceptions
and dateTime objects introduced.

The "beta" tag is meant to indicate the fact that the refactoring has been more widespread
than in precedent releases and that more changes are likely to be introduced with time -
the library is still considered to be production quality.

  • improved: removed all usage of php functions deprecated in php 5.3, usage of assign-by-ref when creating new objects etc...
  • improved: add support for the ex:nil/ tag used by the apache library, both in input and output
  • improved: add support for dateTime objects in both in php_xmlrpc_encode and as parameter for constructor of xmlrpcval
  • improved: add support for timestamps as parameter for constructor of xmlrpcval
  • improved: add option 'dates_as_objects' to php_xmlrpc_decode to return dateTime objects for xmlrpc datetimes
  • improved: add new method SetCurlOptions to xmrlpc_client to allow extra flexibility in tweaking http config, such as explicitly binding to an ip address
  • improved: add new method SetUserAgent to xmrlpc_client to to allow having different user-agent http headers
  • improved: add a new member variable in server class to allow fine-tuning of the encoding of returned values when the server is in 'phpvals' mode
  • improved: allow servers in 'xmlrpcvals' mode to also register plain php functions by defining them in the dispatch map with an added option
  • improved: catch exceptions thrown during execution of php functions exposed as methods by the server
  • fixed: bad encoding if same object is encoded twice using php_xmlrpc_encode
phpxmlrpc - v2.2.2

Published by gggeek almost 11 years ago

This release corrects all bugs that have been reported and sucesfully reproduced since
version 2.2.1.
Regardless of the intimitading message about dropping PHP 4 support, it still does
support that ancient, broken and insecure platform.

  • fixed: php warning when receiving 'false' in a bool value
  • fixed: improve robustness of the debugger when parsing weird results from non-compliant servers
  • fixed: format floating point values using the correct decimal separator even when php locale is set to one that uses comma
  • fixed: use feof() to test if socket connections are to be closed instead of the number of bytes read (rare bug when communicating with some servers)
  • fixed: be more tolerant in detection of charset in http headers
  • fixed: fix encoding of UTF8 chars outside of the BMP plane
  • fixed: fix detection of zlib.output_compression
  • improved: allow the add_to_map server method to add docs for single params too
  • improved: added the possibility to wrap for exposure as xmlrpc methods plain php class methods, object methods and even whole classes