Version 0.9.7 released
This release contains many internal improvements and as most notable the license was changed from GPLv3 to Apache 2.0. In the following the changelog.
Added record graph traverser class and various visitor
implementations which are used to produce data from an object graph
This change decouples the strucutal meaning of the response data from the writer. Previously there were many recursive methods in each writer which go through the result data. Now we use the graph traverse class which uses the visitor pattern.
Improved internal data representation for incoming and outgoing data
We now use the stdClass to represent an object instead of an associative array.
Added content type aware fallback template generator and move
fallback generation to the html writer
This fixes a problem where PSX i.e. generates an text/html response altough application/svg+xml was requested. If no fallback generator is available for this content type an exception gets thrown.
Improved request factory added automatic protocol detection if
"psx_url" is i.e. //foo.com and use buffered reader for request body
Previously urls had always the protocol which was set in the "psx_url" configuration. If we skip now the scheme part of the url the generated urls have the scheme which were used in the request.
Table abstract returns now record classes instead of associative
This change does not break any code in user-land since the record class implements now also the ArrayAccess interface.
Log request and response body if in debug mode
If we are in debug mode the request and response body gets logged as debug message.
Added jsonx support
IBM has developed an XML equivalent to JSON called JSONx. This release adds support to read and write JSONx data. The associated content type is
application/jsonx+xml. This might be useful for systems which are only capable of producing XML and want to bypass the limitations of the default XML writer.
Improved streams and added buffered stream implementation
An buffered stream reader was added to read multiple times from the body despite that the
php://inputstream is read only (for PHP < 5.6).
Added logcaster monolog listener
Added an monolog handler which writes messages to an logcaster server.
Updated PSR http-message to the current version of the spec
That means that the method getBodyParams was renamed to getParsedBody.
Changed license from GPLv3 to Apache 2.0
We have changed our license from GPLv3 to Apache 2.0. From now it is possible to use PSX in an commercial application without the need to publish the source code. For more informations please read the Apache 2.0 license.