Update year on copyright
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Tutorial / 02_CatalystBasics.pod
index 0156f2b..2670043 100644 (file)
@@ -190,11 +190,11 @@ previous step):
 
 B<Note>: The "-r" argument enables reloading on code changes so you 
 don't have to stop and start the server when you update code. See 
-C<perldoc script/hello_server.pl> for additional options you might find 
-helpful. Most of the rest of the tutorial will assume that you are using 
-"-r" when you start the development server, but feel free to manually 
-start and stop it (use C<Ctrl-C> to break out of the dev server) if you 
-prefer. 
+C<perldoc script/hello_server.pl> or C<script/hello_server.pl --help>
+for additional options you might find helpful. Most of the rest of the
+tutorial will assume that you are using "-r" when you start the development
+server, but feel free to manually start and stop it (use C<Ctrl-C> to
+breakout of the dev server) if you prefer. 
 
     $ script/hello_server.pl -r
     [debug] Debug messages enabled
@@ -330,7 +330,7 @@ Save the file, and you should notice the following in your server output:
      - /home/me/Hello/lib/Hello/Controller/Root.pm (modify)
     
     Attempting to restart the server
-    ...        
+    ...
     [debug] Loaded Private actions:
     .----------------------+--------------------------------------+--------------.
     | Private              | Class                                | Method       |
@@ -367,9 +367,9 @@ Toolkit Template template file), the actual templates go under the
 
 To create a TT view, run:
 
-    $ script/hello_create.pl view TT TT
+    $ script/hello_create.pl view HTML TT
 
-This creates the C<lib/Hello/View/TT.pm> module, which is a subclass of 
+This creates the C<lib/Hello/View/HTML.pm> module, which is a subclass of 
 C<Catalyst::View::TT>. 
 
 =over 4
@@ -380,9 +380,11 @@ The "view" keyword tells the create script that you are creating a view.
 
 =item *
 
-The first "TT" tells the script to name the View module "TT.pm", which is a
-commonly used name for TT views.  (You can name it anything you want, such as
-"HTML.pm".)
+The first argument "HTML" tells the script to name the View module "HTML.pm",
+which is a commonly used name for TT views.  You can name it anything you want,
+such as "MyView.pm". If you have more than one view, be sure to set the
+default_view in Hello.pm (See L<Catalyst::View::TT|Catalyst::View::TT> for more
+details on setting this).
 
 =item *
 
@@ -391,10 +393,10 @@ indicating that you want to a Template Toolkit view.
 
 =back
 
-If you look at C<lib/Hello/View/TT.pm> you will find that it only 
+If you look at C<lib/Hello/View/HTML.pm> you will find that it only 
 contains a config statement to set the TT extension to ".tt".
 
-Now that the TT.pm "View" exists, Catalyst will autodiscover it and be 
+Now that the HTML.pm "View" exists, Catalyst will autodiscover it and be 
 able to use it to display the view templates using the "process" 
 method that it inherits from the C<Catalyst::View::TT> class.
 
@@ -407,7 +409,7 @@ chapters of the tutorial).
 Create a C<root/hello.tt> template file (put it in the C<root> under 
 the C<Hello> directory that is the base of your application). Here is 
 a simple sample:
-  
+
     <p>
         This is a TT view template, called '[% template.name %]'.
     </p>
@@ -442,6 +444,32 @@ using the "-r" option -- manually restart it if you aren't),
 and look at L<http://localhost:3000/hello> in your again. You 
 should see the template that you just made.
 
+B<TIP:> If you keep the server running with "-r" in a "background 
+window," don't let that window get totally hidden... if you have an 
+syntax error in your code, the debug server output will contain the 
+error information.
+
+B<Note:> You will probably run into a variation of the "stash"
+statement above that looks like:
+
+    $c->stash->{template} = 'hello.tt';
+
+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', 
+              another_thing => 1);
+
+You can also set multiple stash values with a hashref:
+
+    $c->stash({template => 'hello.tt', foo => 'bar', 
+              another_thing => 1});
+
+Any of these formats work, but the C<$c-E<gt>stash(name =E<gt> value);>
+style is growing in popularity -- you may wish to use it all the 
+time (even when you are only setting a single value).
+
 
 =head1 CREATE A SIMPLE CONTROLLER AND AN ACTION
 
@@ -459,7 +487,7 @@ In C<lib/Hello/Controller/Site.pm>, add the following method:
         my ( $self, $c ) = @_;
     
         $c->stash(username => 'John',
-                                 template => 'site/test.tt');
+                  template => 'site/test.tt');
     }
 
 Notice the "Local" attribute on the C<test> method. This will cause 
@@ -503,5 +531,5 @@ Please report any errors, issues or suggestions to the author.  The
 most recent version of the Catalyst Tutorial can be found at
 L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Tutorial/>.
 
-Copyright 2006-2008, Kennedy Clark & Gerda Shank, under Creative Commons License
+Copyright 2006-2010, Kennedy Clark, under Creative Commons License
 (L<http://creativecommons.org/licenses/by-sa/3.0/us/>).