Allow manipulation of a response by setting, appending and prepending the body text.
When the response receives a redirect, stop executing imediately and header the user to the given page.
Only extract parameters for a class plugin, if they are present in the plugin definition.
Simple templating via a core plugin. The plugin returns a template factory which can be used to create templates. The result of a template can be passed to the response (or be used otherwise).
Let the Response object always return '$this'. It encourages chaining and it is easier and cleaner to use.
Removed unhelpful comments from the sample app.
Allow pages to extract GET and POST data from the request.
Ability to send extra constructor arguments to a plugin. In a page a plugin can now be created by using '$this->plugin('alias' [, argument1 [, argument2 [...]]])'. All arguments will be passed to the constructor of the plugin in the provided order.
Testpage for the extraction of GET data added.
Added 'expectGet' and 'expectPost' methods to the Request object. These methods work just like the normal 'get' and 'post', but also accept an extra default parameter. When the GET or POST element could not be found, the default is returned.
Added an abstract TypeFactory. All type factories have to extend this abstract class. This way the public interface of these classes is more clear.
Removed unused docblocks.
Share created plugins by default, but provide an option to opt-out. Plugins will be shared between calls to the plugin manager. Only if a plugin explicitly tells to not share its product, will the plugin manager create a new product every time.