[Catalyst-commits] r7821 - trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial

hkclark at dev.catalyst.perl.org hkclark at dev.catalyst.perl.org
Tue May 27 15:55:14 BST 2008


Author: hkclark
Date: 2008-05-27 15:55:13 +0100 (Tue, 27 May 2008)
New Revision: 7821

Modified:
   trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/Authentication.pod
   trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod
   trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod
Log:


Modified: trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/Authentication.pod
===================================================================
--- trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/Authentication.pod	2008-05-27 13:15:00 UTC (rev 7820)
+++ trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/Authentication.pod	2008-05-27 14:55:13 UTC (rev 7821)
@@ -357,9 +357,11 @@
 actions.  Remember, Catalyst is designed to be very flexible, and leaves
 such matters up to you, the designer and programmer.
 
-Then open C<lib/MyApp/Controller/Login.pm>, locate the C<sub index : 
-Private> method (this was automatically inserted by the helpers when we 
-created the Login controller above), and delete this line:
+Then open C<lib/MyApp/Controller/Login.pm>, locate the C<sub index 
+:Path :Args(0)> method (or C<sub index : Private> if you are using an 
+older version of Catalyst) that was automatically inserted by the 
+helpers when we created the Login controller above, and delete this 
+line:
 
     $c->response->body('Matched MyApp::Controller::Login in Login.');
 
@@ -371,7 +373,7 @@
     
     =cut
     
-    sub index : Private {
+    sub index :Path :Args(0) {
         my ($self, $c) = @_;
     
         # Get the username and password from form
@@ -403,22 +405,21 @@
 C<username> and C<password> values are not present in the form, the 
 user will be taken to the empty login form.
 
-Note that we could have used something like C<sub default :Private>; 
-however, the use of C<default> actions is discouraged because it does
-not receive path args as with other actions.  The recommended practice 
-is to only use C<default> in C<MyApp::Controller::Root>.
+Note that we could have used something like C<sub default :Path> (or 
+even C<sub default : Private>; however, the use of C<default> actions 
+is discouraged because it does not receive path args as with other 
+actions.  The recommended practice is to only use C<default> in 
+C<MyApp::Controller::Root>.
 
-Another option would be to use something like 
-C<sub base :Path :Args(0) {...}> (where the C<...> refers to the login 
-code shown in C<sub index : Private> above). We are using C<sub base 
-:Path :Args(0) {...}> here to specifically match the URL C</login>. 
-C<Path> actions (aka, "literal actions") create URI matches relative to 
-the namespace of the controller where they are defined.  Although 
-C<Path> supports arguments that allow relative and absolute paths to be 
-defined, here we use an empty C<Path> definition to match on just the 
-name of the controller itself.  The method name, C<base>, is arbitrary. 
-We make the match even more specific with the C<:Args(0)> action 
-modifier -- this forces the match on I<only> C</login>, not 
+Instead, we are using C<sub base :Path :Args(0) {...}> here to 
+specifically match the URL C</login>. C<Path> actions (aka, "literal 
+actions") create URI matches relative to the namespace of the 
+controller where they are defined.  Although C<Path> supports 
+arguments that allow relative and absolute paths to be defined, here 
+we use an empty C<Path> definition to match on just the name of the 
+controller itself.  The method name, C<index>, is arbitrary. We make 
+the match even more specific with the C<:Args(0)> action modifier --
+this forces the match on I<only> C</login>, not 
 C</login/somethingelse>.
 
 Next, update the corresponding method in 
@@ -430,7 +431,7 @@
     
     =cut
     
-    sub index : Private {
+    sub index :Path :Args(0) {
         my ($self, $c) = @_;
     
         # Clear the user's state

Modified: trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod
===================================================================
--- trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod	2008-05-27 13:15:00 UTC (rev 7820)
+++ trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod	2008-05-27 14:55:13 UTC (rev 7821)
@@ -242,7 +242,7 @@
 your browser. Later on you'll want to change that to something more 
 reasonable, such as a "404" message but for now just leave it alone.
 
-    sub default : Path : Args {
+    sub default :Path :Args {
         my ( $self, $c ) = @_;
     
         $c->response->body( $c->welcome_message );
@@ -260,7 +260,7 @@
 is a special method that returns the welcome message that you saw in 
 your browser.
 
-The ": Path : Args" after the method name are attributes which determine 
+The ":Path :Args" after the method name are attributes which determine 
 which URLs will be dispatched to this method. (Depending on your version of 
 Catalyst, it used to say "Private" but using that with default is 
 currently deprecated.)

Modified: trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod
===================================================================
--- trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod	2008-05-27 13:15:00 UTC (rev 7820)
+++ trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod	2008-05-27 14:55:13 UTC (rev 7821)
@@ -275,12 +275,12 @@
 of Nicholas Clark's C<attributes> module (that's the C<: Local> next 
 to the C<sub list> in the code above) to provide additional 
 information to the Catalyst dispatcher logic.  Many newer Catalyst 
-applications are switching to the use of "Literal" C<: Path> actions 
+applications are switching to the use of "Literal" C<:Path> actions 
 and C<Args> attribute in lieu of C<: Local> and C<: Private>.  For 
-example, C<sub any_method : Path Args(0)> can be used instead of 
+example, C<sub any_method :Path :Args(0)> can be used instead of 
 C<sub index :Private> (because no path was supplied to C<Path> it 
 matches the "empty" URL in the namespace of that module... the same 
-thing C<sub index> would do) or C<sub list : Path('list') Args(0)> 
+thing C<sub index> would do) or C<sub list :Path('list') :Args(0)> 
 could be used instead of the C<sub list : Local> above (the C<list> 
 argument to C<Path> would make it match on the URL C<list> under 
 C<books>, the namespace of the current module).  See "Action Types" in 




More information about the Catalyst-commits mailing list