X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FIntro.pod;h=bd9ad73f0e3456b63cb0679aada3e1626f35fc2b;hp=28646636380e4204824b495344dc26a217c7cc6f;hb=d28e06d1f90df14c5c577a658168ca6d6130dbb6;hpb=e8556dab015903c85f3a413224a12493d95a7934 diff --git a/lib/Catalyst/Manual/Intro.pod b/lib/Catalyst/Manual/Intro.pod index 2864663..bd9ad73 100644 --- a/lib/Catalyst/Manual/Intro.pod +++ b/lib/Catalyst/Manual/Intro.pod @@ -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 can automaticall load table layouts and +L can automatically load table layouts and relationships, and convert them into a static schema definition C, 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 -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 of arguments are taken. Thus, any -URL that B the controller's path will match. +URL that B 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, however, doesn't override like this: providing they exist, -C, C and +C, C and C would be called in turn. Here are some examples of the order in which the various built-ins