Hilight the importance of uncommenting the template line in the list action
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Intro.pod
index 2864663..bd9ad73 100644 (file)
@@ -104,7 +104,7 @@ example:
 
 Now http://localhost:3000/hello prints "Hello World!".
 
-Note that actions with the C< :Global > attribute are equivalent to
+Note that actions with the C< :Local > attribute are equivalent to
 using a C<:Path('action_name') > attribute, so our action could be
 equivalently:
 
@@ -357,7 +357,7 @@ Now we can create a DBIC::Schema model for this database.
 
     script/myapp_create.pl model MyModel DBIC::Schema MySchema create=static 'dbi:SQLite:/tmp/myapp.db'
 
-L<DBIx::Class::Schema::Loader> can automaticall load table layouts and
+L<DBIx::Class::Schema::Loader> can automatically load table layouts and
 relationships, and convert them into a static schema definition
 C<MySchema>, which you can edit later.
 
@@ -759,7 +759,7 @@ will look at the URL it is processing, and the actions that it has
 found, and automatically call the actions it finds that match the
 circumstances of the request.
 
-The URL (for example http://localhost.3000/foo/bar) consists of two
+The URL (for example http://localhost:3000/foo/bar) consists of two
 parts, the base, describing how to connect to the server
 (http://localhost:3000/ in this example) and the path, which the
 server uses to decide what to return (foo/bar).  Please note that the
@@ -784,7 +784,7 @@ of Catalyst component class names.
 
 =item * B<Overriding the namespace>
 
-Note that __PACKAGE__->config->{namespace} can be used to override the
+Note that I<< __PACKAGE__->config->(namespace => ... ) >> can be used to override the
 current namespace when matching.  So:
 
     package MyApp::Controller::Example;
@@ -792,7 +792,7 @@ current namespace when matching.  So:
 would normally use 'example' as its namespace for matching, but if
 this is specially overridden with
 
-    __PACKAGE__->config->{namespace}='thing';
+    __PACKAGE__->config( namespace => 'thing' );
 
 it matches using the namespace 'thing' instead.
 
@@ -806,7 +806,7 @@ application (e.g. http://localhost:3000/ ):
     use base 'Catalyst::Controller';
     # Sets the actions in this controller to be registered with no prefix
     # so they function identically to actions created in MyApp.pm
-    __PACKAGE__->config->{namespace} = '';
+    __PACKAGE__->config( namespace => '');
     sub default : Path  {
         my ( $self, $context ) = @_;
         $context->response->status(404);
@@ -817,7 +817,7 @@ application (e.g. http://localhost:3000/ ):
 
 The code
 
-    __PACKAGE__->config->{namespace} = '';
+    __PACKAGE__->config( namespace => '' );
 
 makes the controller act as if its namespace is empty.  As you'll see
 below, an empty namespace makes many of the URL-matching attributes,
@@ -847,7 +847,7 @@ of the path is passed as arguments.
 Matches any URL beginning with> http://localhost:3000/my/controller/foo. The namespace and
 subroutine name together determine the path.
 
-=item * Namespace-level (C<:Global>)
+=item * Root-level (C<:Global>)
 
     package MyApp::Controller::Foo;
     sub foo : Global { }
@@ -855,11 +855,12 @@ subroutine name together determine the path.
 Matches http://localhost:3000/foo - that is, the action is mapped
 directly to the controller namespace, ignoring the function name.
 
-C<:Global> is equivalent C<:Local> one level higher in
-the namespace.
+C<:Global> always matches from root: it is sugar for C<:Path('/methodname')>.
+C<:Local> is simply sugar for C<:Path('methodname')>, which takes the package
+namespace as described above.
 
     package MyApp::Controller::Root;
-    __PACKAGE__->config->{namespace}='';
+    __PACKAGE__->config( namespace => '');
     sub foo : Local { }
 
 Use whichever makes the most sense for your application.
@@ -887,7 +888,9 @@ C<:Args(0)> means that no arguments are taken.  Thus, the URL and path must
 match precisely.
 
 No :Args at all means that B<any number> of arguments are taken.  Thus, any
-URL that B<starts with> the controller's path will match.
+URL that B<starts with> the controller's path will match. Obviously, this means
+you cannot chain from an action that does not specify args, as the next action
+in the chain will be swallowed as an arg to the first!
 
 
 =item * Literal match (C<:Path>)
@@ -1096,7 +1099,7 @@ turn.
     sub auto : Private { }
 
 C<auto>, however, doesn't override like this: providing they exist,
-C<MyApp::auto>, C<MyApp::Controller::Catalog::auto> and
+C<MyApp::Controller::Root::auto>, C<MyApp::Controller::Catalog::auto> and
 C<MyApp::Catalog::Order::auto> would be called in turn.
 
 Here are some examples of the order in which the various built-ins