[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