X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FCookbook.pod;h=5262a104c2b92409259ea9cd05fcfe4827120392;hp=b6496ad6a7e1ebfa088ef116234ee7a45b3cd27b;hb=b1d4f0ad2632f2336d8b101af3522ac0e14f9948;hpb=bfa445edbd7c231310bb2efd0ffceab9e80357ec diff --git a/lib/Catalyst/Manual/Cookbook.pod b/lib/Catalyst/Manual/Cookbook.pod index b6496ad..5262a10 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 @@ -1757,6 +1760,9 @@ mod_fastcgi for Apache is a third party module, and can be found at L. It is also packaged in many distributions, for example, libapache2-mod-fastcgi in Debian. +Important Note! If you experience difficulty properly rendering pages, +try disabling Apache's mod_deflate (Deflate Module), e.g. 'a2dismod deflate'. + =head4 2. Configure your application # Serve static content directly