4.6.0
-
fixed: compatibility with php 8.1
-
improved: when encoding utf8 text into us-ascii xml, use character entity references for characters number 0-31 (ascii non printable characters), as we were already doing when encoding iso-8859-1 text into us-ascii xml
-
new: method
Server::getDispatchMap(). Useful for non-child classes which want to f.e. introspect the server -
new: increase flexibility in class composition by adopting a Dependency Injection (...ish) pattern: it is now possible to swap out the Logger, XMLParser and Charset classes with similar ones of your own making.
Example code:// 1. create an instance of a custom character encoder // $myCharsetEncoder = ... // 2. then use it while serializing a Request: Request::setCharsetEncoder($myCharsetEncoder); $request->serialize($funkyCharset); -
new: method
XMLParser::parse()acquired a 4th argument -
new: method
Wrapper::wrapPhpClassallows to customize the names of the phpxmlrpc methods by stripping the original class name and accompanying namespace and replace it with a user-defined prefix, via optionreplace_class_name -
new:
Responseconstructor gained a 4th argument -
deprecated: properties
Response::hdrs,Response::_cookies,Response::raw_data. UseResponse::httpResponse()instead.
That method returns an array which also holds the http response's status code - useful in case of http errors. -
deprecated: method
Request::createPayload. UseRequest::serializeinstead -
deprecated: property
Request::httpResponse -
improved:
Http::parseResponseHeadersnow throws a more specific exception in case of http errors -
improved: Continuous Integration is now running on Github Actions instead of Travis