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=4db76b0a12dfd726660e73e53ca5636d561bf18e;hp=b788e91a513338865ccea671953f0b83e11c1365;hb=31e9c5ef62da7e7aab68a5dc4b4650e3e2ff307e;hpb=1febc43aa86c7f38e95d34bc47eec4d395145b02 diff --git a/lib/Catalyst/Manual/Cookbook.pod b/lib/Catalyst/Manual/Cookbook.pod index b788e91..4db76b0 100644 --- a/lib/Catalyst/Manual/Cookbook.pod +++ b/lib/Catalyst/Manual/Cookbook.pod @@ -373,17 +373,17 @@ the user is a member. }, }, }, - }, + }, ); package MyApp::Controller::Root; use Moose; use namespace::autoclean; - + BEGIN { extends 'Catalyst::Controller' } - + __PACKAGE__->config(namespace => ''); - + sub login : Local { my ($self, $c) = @_; @@ -446,7 +446,7 @@ determines what this user is allowed to do. Under role based access control each user is allowed to perform any number of roles. For example, at a zoo no one but specially trained -personnel can enter the moose cage (Mynd you, møøse bites kan be +personnel can enter the moose cage (Mynd you, møøse bites kan be pretty nasti!). For example: package Zoo::Controller::MooseCage; @@ -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: @@ -1511,6 +1482,38 @@ information on passing arguments via C.) 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 The recipes below describe aspects of the deployment process, @@ -1755,7 +1758,11 @@ than when using mod_perl. 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. +for example, libapache2-mod-fastcgi in Debian. You will also need to install +the L module from cpan. + +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