X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FIntro.pod;h=abd7ed3cd4003c7ad4615249b2f1a3162a371514;hp=19725ee39ba65b49d0f4405708440755d0992c81;hb=66f6e959d5d07f987228c229280bccfd14223fc4;hpb=49e0f58dc3b6e980b064dc85ed73bfaf092b4cd4 diff --git a/lib/Catalyst/Manual/Intro.pod b/lib/Catalyst/Manual/Intro.pod index 19725ee..abd7ed3 100644 --- a/lib/Catalyst/Manual/Intro.pod +++ b/lib/Catalyst/Manual/Intro.pod @@ -84,7 +84,7 @@ With Catalyst you register your actions and address them directly. For example: sub hello : Global { my ( $self, $context ) = @_; - $context->response->output('Hello World!'); + $context->response->body('Hello World!'); } Now http://localhost:3000/hello prints "Hello World!". @@ -184,7 +184,6 @@ application, load plugins, define application-wide actions, and extend Catalyst. MyApp->config( name => 'My Application', - root => '/home/joeuser/myapp/root', # You can put anything else you want in here: my_configuration_variable => 'something', @@ -192,13 +191,13 @@ application, load plugins, define application-wide actions, and extend Catalyst. sub default : Private { my ( $self, $context ) = @_; - $context->response->output('Catalyst rockz!'); + $context->response->body('Catalyst rockz!'); } 1; -For most applications, Catalyst requires you to define only two config -parameters: +For most applications, Catalyst requires you to define only one config +parameter: =over 4 @@ -206,15 +205,13 @@ parameters: Name of your application. -=item * B - -Path to additional files such as templates, images, or other static data. - =back -However, you can define as many parameters as you want for plugins or whatever -you need. You can access them anywhere in your application via -C<$context-Econfig-E{$param_name}>. +Optionally, you can specify a B parameter for templates and static data. +If omitted, Catalyst will try to auto-detect the directory's location. You +can define as many parameters as you want for plugins or whatever you +need. You can access them anywhere in your application +via C<$context-Econfig-E{$param_name}>. =head3 Context @@ -233,7 +230,7 @@ Catalyst developers just call it C<$c>: sub hello : Global { my ( $self, $c ) = @_; - $c->res->output('Hello World!'); + $c->res->body('Hello World!'); } The Context contains several important objects: @@ -261,7 +258,7 @@ query parameters, cookies, uploads, headers, and more. The response is like the request, but contains just response-specific information. - $c->res->output('Hello World'); + $c->res->body('Hello World'); $c->res->status(404); $c->res->redirect('http://oook.de'); @@ -298,7 +295,7 @@ application components. For an example, we return to our 'hello' action: sub show_message : Private { my ( $self, $c ) = @_; - $c->res->output( $c->stash->{message} ); + $c->res->body( $c->stash->{message} ); } Note that the stash should be used only for passing data in an individual @@ -336,10 +333,19 @@ Regex matches act globally, i.e. without reference to the namespace from which it is called, so that a C method in the C namespace won't match any form of C, C, C, or C unless you explicitly put this in -the regex. +the regex. To achieve the above, you should consider using a C action. + +=item * B + + sub bar : LocalRegex('^widget(\d+)$') { } -If you use capturing parentheses to extract values within the matching URL (23, -42 in the above example), those values are available in the $c->req->snippets +LocalRegex actions act locally. If you were to use C in +C, the above example would match urls like +http://localhost:3000/catalogue/widget23. + +For both LocalRegex and Regex actions, if you use capturing parentheses to +extract values within the matching URL ("widget23" would capture "23" in the +above example), those values are available in the $c->req->snippets array. If you want to pass arguments at the end of your URL, you must use regex action keys. See L below. @@ -402,6 +408,11 @@ 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. +=item * B + +C is much like C except that it takes no arguments +and it is weighted slightly higher in the matching process. + =item * B Called at the beginning of a request, before any matching actions are @@ -556,7 +567,7 @@ debugging enabled). sub show_message : Private { my ( $self, $c ) = @_; - $c->res->output( $c->stash->{message} ); + $c->res->body( $c->stash->{message} ); } A C does not create a new request, so your request @@ -607,12 +618,12 @@ Here are some examples of how to forward to classes and methods. sub say_hello { my ( $self, $c ) = @_; - $c->res->output('Hello World!'); + $c->res->body('Hello World!'); } sub process { my ( $self, $c ) = @_; - $c->res->output('Goodbye World!'); + $c->res->body('Goodbye World!'); } Note that C returns to the calling action and continues