Each controller has a series of 'actions' which are defined as class methods of the Controller
classes. Each action has a specific responsibility, such as listing a set of objects, updating an
object, or deleting an object.
A controller object is instantiated by the Dispatcher (lithium\action\Dispatcher), and is
given an instance of the lithium\action\Request class, which contains all necessary request
state, including routing information, GET & POST data, and server variables. The controller
is then invoked (using PHP's magic __invoke() syntax), and the proper action is called,
according to the routing information stored in the Request object.
A controller then returns a response (i.e. using redirect() or render()) which includes HTTP
headers, and/or a serialized data response (JSON or XML, etc.) or HTML webpage.
For more information on returning serialized data responses for web services, or manipulating
template rendering from within your controllers, see the settings in $_render and the
lithium\net\http\Media class.