Forwarding a request allows you to transparently call another framework Action implementation, without physically redirecting the client. This allows you to chain actions together if you wish, all within a single originating request, without the user ever knowing.
Filters and Filter Chains
A filter chain allows you to combine several filters to prepare data for a request. This can be controlled on a global or module level. A filter can be something as simple as gzipping data before it’s sent to the client, so less bandwidth is used.
The security system allows you to transparently secure an Action implementation, which means you can keep it out of your code and where it should be. Security is as simple as overriding a function or two.
The validation system allows you to write reusable validators, which check parameter data and verify it is correct before physically executing an Action implementation. A second method is also supported which is called after all validators complete successfully, which allows you to validate all parameters as a whole.
Support for Multiple Formats
Support for multiple content formats is built-in. All Action and View implementations are reusable, along with any other code. The only thing required is a new template for the additional content format.