Upgrading to 0.12.x

Instead of egeloen/http-adapter, we now use the PSR-7 compatible php-http/httplug. You will have to change your custom HTTP client implementation and pass a Http\Message\MessageFactory implementation and a Http\Client\HttpClient to the HttpAdapterTransport.
See below for details.

Upgrading to 0.11.x

We change ParserInterface::parse() method interface, now isn't required to pass second parameter ($isFault), parser should throw an exception FaultException when fault message is encountered in server response.

Upgrading to 0.10.x

0.10.x comes with a couple of breaking changes: We used to ship our own bridges for interoperability with various HTTP clients but moved that responsibility to a 3rd party library called Ivory HTTP Adapter.
IMPORTANT NOTE: the library is not installed by default as you could choose to use fxmlrpc with just your own implementation of the fXmlRpc\Transport\TransportInterface. To install the library – and that’s what you most likely want – add this line to your composer.json

"egeloen/http-adapter": "~0.6"

… and run composer update

Instantiating an HTTP transport

In order to use the new adapters, you need to change how you instantiate fXmlRpc and its transport. This is how instantiating a custom transport looked before:

[FEATURE] Adding fXmlRpc\Client::prependParams() and fXmlRpc\Client::appendParams() to set default params. This helps e.g. when you need to add authorization information for every call

[FEATURE] Timing Loggers now support threshold based logging to ease controlling your servers responds in a certain time

[TESTING] Travis now runs the test suite against various versions of supported HTTP clients and logging components.

How fast is it really?

IO performance is out of reach from a userspace perspective, but parsing and
serialization speed is what matters. How fast can we generate the XML payload
from PHP data structures and how fast can we parse the servers response? fXmlRpc
uses stream based XML writers/readers to achieve it’s performance and heavily
optimizes (read uglifies) for it. As as result the userland version is only
around 2x slower than the native C implementation (ext/xmlrpc).

Timing XML/RPC requests to find problematic calls

fXmlRpc allows you to time your XML/RPC request, to find out which took how long. It provides a
fXmlRpc\Timing\TimingDecorator which can be used with various timers implementing
fXmlRpc\Timing\TimerInterface. Currently implemented are bridges for Monolog, Zend Framework 1
Zend_Log and Zend Framework 2 Zend\Log.