X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2F02_CatalystBasics.pod;h=99b531b978dce709cf4712c69976396b819420aa;hp=b68a981fc8421e49962b163aadf97dd8923ebf8d;hb=429d1caf111575afa4c25287cc48d7ed712af327;hpb=eec35f6251de9080183ccf2b9cf575b2536a2f1b diff --git a/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod b/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod index b68a981..99b531b 100644 --- a/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod +++ b/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod @@ -146,7 +146,7 @@ directories and files it creates: Changes # Record of application changes lib # Lib directory for your app's Perl modules Hello # Application main code directory - Controller # Directory for Controller modules + Controller # Directory for Controller modules Model # Directory for Models View # Directory for Views Hello.pm # Base application module @@ -164,9 +164,9 @@ directories and files it creates: hello_server.pl # The normal development server hello_test.pl # Test your app from the command line t # Directory for tests - 01app.t # Test scaffold - 02pod.t - 03podcoverage.t + 01app.t # Test scaffold + 02pod.t + 03podcoverage.t Catalyst will "auto-discover" modules in the Controller, Model, and View @@ -202,7 +202,7 @@ C to breakout of the dev server) if you prefer. .----------------------------------------------------------------------------. | Catalyst::Plugin::ConfigLoader 0.30 | '----------------------------------------------------------------------------' - + [debug] Loaded dispatcher "Catalyst::Dispatcher" [debug] Loaded engine "Catalyst::Engine" [debug] Found home "/home/catalyst/Hello" @@ -213,7 +213,7 @@ C to breakout of the dev server) if you prefer. +-----------------------------------------------------------------+----------+ | Hello::Controller::Root | instance | '-----------------------------------------------------------------+----------' - + [debug] Loaded Private actions: .----------------------+--------------------------------------+--------------. | Private | Class | Method | @@ -222,7 +222,7 @@ C to breakout of the dev server) if you prefer. | /end | Hello::Controller::Root | end | | /index | Hello::Controller::Root | index | '----------------------+--------------------------------------+--------------' - + [debug] Loaded Path actions: .-------------------------------------+--------------------------------------. | Path | Private | @@ -230,7 +230,7 @@ C to breakout of the dev server) if you prefer. | / | /index | | / | /default | '-------------------------------------+--------------------------------------' - + [info] Hello powered by Catalyst 5.90002 HTTP::Server::PSGI: Accepting connections at http://0:3000/ @@ -271,7 +271,7 @@ browser. sub index :Path :Args(0) { my ( $self, $c ) = @_; - + # Hello World $c->response->body( $c->welcome_message ); } @@ -285,9 +285,9 @@ context provides access to "response" and "request" objects. (See L, L, and L) -C<$c-Eresponse-Ebody> sets the HTTP response (see +C<< $c->response->body >> sets the HTTP response (see L), while -C<$c-Ewelcome_message> is a special method that returns the welcome +C<< $c->welcome_message >> is a special method that returns the welcome message that you saw in your browser. The ":Path :Args(0)" after the method name are attributes which @@ -318,7 +318,7 @@ C file: sub hello :Global { my ( $self, $c ) = @_; - + $c->response->body("Hello, World!"); } @@ -330,7 +330,7 @@ get output similar to the following: Saw changes to the following files: - /home/catalyst/Hello/lib/Hello/Controller/Root.pm (modify) - + Attempting to restart the server ... [debug] Loaded Private actions: @@ -420,17 +420,17 @@ following: sub hello :Global { my ( $self, $c ) = @_; - + $c->stash(template => 'hello.tt'); } -This time, instead of doing C<$c-Eresponse-Ebody()>, you are +This time, instead of doing C<< $c->response->body() >>, you are setting the value of the "template" hash key in the Catalyst "stash", an area for putting information to share with other parts of your application. The "template" key determines which template will be displayed at the end of the request cycle. Catalyst controllers have a default "end" action for all methods which causes the first (or default) -view to be rendered (unless there's a C<$c-Eresponse-Ebody()> +view to be rendered (unless there's a C<< $c->response->body() >> statement). So your template will be magically displayed at the end of your method. @@ -454,15 +454,15 @@ Although this style is still relatively common, the approach we used previous is becoming more common because it allows you to set multiple stash variables in one line. For example: - $c->stash(template => 'hello.tt', foo => 'bar', + $c->stash(template => 'hello.tt', foo => 'bar', another_thing => 1); You can also set multiple stash values with a hashref: - $c->stash({template => 'hello.tt', foo => 'bar', + $c->stash({template => 'hello.tt', foo => 'bar', another_thing => 1}); -Any of these formats work, but the C<$c-Estash(name =E value);> +Any of these formats work, but the C<< $c->stash(name => value); >> style is growing in popularity -- you may wish to use it all the time (even when you are only setting a single value). @@ -481,7 +481,7 @@ In C, add the following method: sub test :Local { my ( $self, $c ) = @_; - + $c->stash(username => 'John', template => 'site/test.tt'); } @@ -508,7 +508,7 @@ Make a subdirectory "site" in the "root" directory. $ mkdir root/site -Create a new template file in that direction named C +Create a new template file in that directory named C and include a line like:

Hello, [% username %]!