X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FIntro.pod;h=ea6344d6f3bf292977720b883b675e4780242d63;hp=3cdaff079bfb4dfbf17867371fea3733193ab7e4;hb=ca7528dfa8625d0ed6688f2bb93372ab3d958881;hpb=792ad33189eba7c10dd2d2222301481256a1959c diff --git a/lib/Catalyst/Manual/Intro.pod b/lib/Catalyst/Manual/Intro.pod index 3cdaff0..ea6344d 100644 --- a/lib/Catalyst/Manual/Intro.pod +++ b/lib/Catalyst/Manual/Intro.pod @@ -104,6 +104,16 @@ example: Now http://localhost:3000/hello prints "Hello World!". +Note that actions with the C< :Local > attribute are equivalent to +using a C<:Path('/action_name') > attribute (note the leading slash). +So our action could be equivalently: + + sub hello : Path('/hello') { + my ( $self, $context ) = @_; + $context->response->body('Hello World!'); + } + + =item * B Use L or L. Other @@ -337,9 +347,9 @@ Now we can create a DBIC::Schema model for this database. script/myapp_create.pl model MyModel DBIC::Schema MySchema create=static 'dbi:SQLite:/tmp/myapp.db' -L automatically loads table layouts and -relationships, and converts them into a static schema definition C, -which you can edit later. +L can automaticall load table layouts and +relationships, and convert them into a static schema definition +C, which you can edit later. Use the stash to pass data to your templates. @@ -550,9 +560,10 @@ configure your application, load plugins, and extend Catalyst. package MyApp; use strict; - use Catalyst qw/-Debug/; # Add other plugins here, e.g. - # for session support - + use parent qw/Catalyst/; + __PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/); + # note you can still use use Catalyst qw/@plugins/ instead of the + # above two lines MyApp->config( name => 'My Application', @@ -696,9 +707,10 @@ this: # Sets the actions in this controller to be registered with no prefix # so they function identically to actions created in MyApp.pm __PACKAGE__->config->{namespace} = ''; - sub default : Private { + sub default : Path { my ( $self, $context ) = @_; - $context->response->body('Catalyst rocks!'); + $context->response->status(404); + $context->response->body('404 not found'); } 1; @@ -797,6 +809,11 @@ Catalyst ("MyApp::Controller" in the above example), replaces "::" with explanation of the pre-defined meaning of Catalyst component class names. +Note that actions with the C< :Local > attribute are equivalent to the +<:Path('action_name') > so sub foo : Local { } is equivalent to - + + sub foo : Path('foo') { } + =item * B Catalyst also provides a method to build and dispatch chains of actions, @@ -867,26 +884,24 @@ call these built-in private actions in your application class: =over 4 -=item * B +=item * B Called when no other action matches. Could be used, for example, for displaying a generic frontpage for the main app, or an error page for -individual controllers. +individual controllers. B: in older Catalyst applications you +will see C which is roughly speaking equivalent. -If C isn't acting how you would expect, look at using a -L C action (with an empty path string). The difference -is that C takes arguments relative from the namespace and -C I takes arguments relative from the root, regardless -of what controller it's in. Indeed, this is now the recommended way of -handling default situations; the C private controller should -be considered deprecated. -=item * B +=item * B -C is much like C except that it takes no arguments -and it is weighted slightly higher in the matching process. It is -useful as a static entry point to a controller, e.g. to have a static -welcome page. Note that it's also weighted higher than Path. +C is much like C except that it takes no arguments and +it is weighted slightly higher in the matching process. It is useful +as a static entry point to a controller, e.g. to have a static welcome +page. Note that it's also weighted higher than Path. Actually the sub +name C can be called anything you want. The sub attributes are +what determines the behaviour of the action. B: in older +Catalyst applications, you will see C used, which is +roughly speaking equivalent. =item * B @@ -903,7 +918,7 @@ Called at the end of a request, after all matching actions are called. Package MyApp::Controller::Foo; sub begin : Private { } - sub default : Private { } + sub default : Path { } sub auto : Private { } You can define built-in private actions within your controllers as