X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FCookbook.pod;h=b4d1d91cf8a2aa3f233c0a7b56423501cf464e36;hb=f588643fa29e325f98c4be9d714ca51439989639;hp=b6496ad6a7e1ebfa088ef116234ee7a45b3cd27b;hpb=bfa445edbd7c231310bb2efd0ffceab9e80357ec;p=catagits%2FCatalyst-Manual.git diff --git a/lib/Catalyst/Manual/Cookbook.pod b/lib/Catalyst/Manual/Cookbook.pod index b6496ad..b4d1d91 100644 --- a/lib/Catalyst/Manual/Cookbook.pod +++ b/lib/Catalyst/Manual/Cookbook.pod @@ -1084,36 +1084,6 @@ set the appropriate content type and disposition. Controllers are the main point of communication between the web server and your application. Here we explore some aspects of how they work. -=head2 Extending RenderView (formerly DefaultEnd) - -The recommended approach for an C action is to use -L (taking the place of -L), which does what you usually need. -However there are times when you need to add a bit to it, but don't want -to write your own C action. - -You can extend it like this: - -To add something to an C action that is called before rendering -(this is likely to be what you want), simply place it in the C -method: - - sub end : ActionClass('RenderView') { - my ( $self, $c ) = @_; - # do stuff here; the RenderView action is called afterwards - } - -To add things to an C action that are called I rendering, -you can set it up like this: - - sub render : ActionClass('RenderView') { } - - sub end : Private { - my ( $self, $c ) = @_; - $c->forward('render'); - # do stuff here - } - =head2 Action Types =head3 Introduction @@ -1329,11 +1299,12 @@ will both be called when visiting You can put root actions in your main MyApp.pm file, but this is deprecated, please put your actions into your Root controller. -=head3 More Information +=head3 Flowchart -L +A graphical flowchart of how the dispatcher works can be found on the wiki at +L. -=head2 DRY Controllers with Chained actions. +=head2 DRY Controllers with Chained actions Imagine that you would like the following paths in your application: @@ -1510,6 +1481,38 @@ information on passing arguments via C.) use base qw/Catalyst::Controller/; sub key1 : Chained('/') + +=head2 Extending RenderView (formerly DefaultEnd) + +The recommended approach for an C action is to use +L (taking the place of +L), which does what you usually need. +However there are times when you need to add a bit to it, but don't want +to write your own C action. + +You can extend it like this: + +To add something to an C action that is called before rendering +(this is likely to be what you want), simply place it in the C +method: + + sub end : ActionClass('RenderView') { + my ( $self, $c ) = @_; + # do stuff here; the RenderView action is called afterwards + } + +To add things to an C action that are called I rendering, +you can set it up like this: + + sub render : ActionClass('RenderView') { } + + sub end : Private { + my ( $self, $c ) = @_; + $c->forward('render'); + # do stuff here + } + + =head1 Deployment