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 arrays

    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://input stream 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.