Skip to content

Releases: gggeek/phpxmlrpc

Fixed: compatibility with Lighttpd as target server with client in curl mode and biggish requests

15 Oct 11:42
Compare
Choose a tag to compare

Fixed: compatibility with php 7.2

11 Oct 10:02
Compare
Choose a tag to compare
4.2.1

Fix last commit

Make old version of the library compatible with php 7

01 Jul 19:30
Compare
Choose a tag to compare

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

Allow DateTimeImmutable objects be detected as date when encoding

30 Jun 22:26
Compare
Choose a tag to compare

Fix one bug in the server class

01 Oct 12:37
Compare
Choose a tag to compare

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

Add support for i8

26 Jun 20:17
Compare
Choose a tag to compare

Apart from that, no other bugfixes

One bugfix: better latin-1 output

26 Jun 18:50
Compare
Choose a tag to compare

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

v4.0.0

20 Jan 23:33
Compare
Choose a tag to compare

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

4.0.0-alpha

12 Jul 23:20
Compare
Choose a tag to compare
4.0.0-alpha Pre-release
Pre-release

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

v3.0.1

19 Apr 00:20
Compare
Choose a tag to compare

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