=head1 PLUGINS
Take care with plugins! In general with a plugin ask "should this be
-acting globally on my application application?". If not it should be a
+acting globally on my application?". If not it should be a
Controller Role (e.g. see L<Catalyst::TraitFor::Controller::reCAPTCHA>.
=head2 L<Catalyst::Plugin::Account::AutoDiscovery>
=head3 Using a session
Once the session modules are loaded, the session is available as C<<
-$c->session >>, and can be writen to and read from as a simple hash
+$c->session >>, and can be written to and read from as a simple hash
reference.
=head3 EXAMPLE
changes when they are (inevitably) needed.
The template files that you will create for your application will go
-into root/src, and you don't need to worry about putting the the <html>
+into root/src, and you don't need to worry about putting the <html>
or <head> sections; just put in the content. The WRAPPER will the rest
of the page around your template for you.
=head1 WEB SERVERS
Any web server which supports FastCGI should work with Catalyst. Configuration
-recipies for well-known web servers are linked below, and we would welcome
+recipes for well-known web servers are linked below, and we would welcome
contributions from people deploying Catalyst on other web servers.
=head2 Apache
=head2 Bug list
-The TODO list with known bugs / deficiences is kept at
+The TODO list with known bugs / deficiencies is kept at
L<http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits/Catalyst-Runtime.git;a=blob_plain;f=TODO;hb=master>
=head1 The Catalyst Core Team
These steps are normally overloaded from engine classes, and may also be
extended by plugins. For more on extending Catalyst, see L<Catalyst::Manual::ExtendingCatalyst>.
-The engine class populate sthe Catalyst request object with
+The engine class populates the Catalyst request object with
information from the underlying layer (L<PSGI>)
during the prepare phase, then push the generated response information down to
the underlying layer during the finalize phase.
Catalyst is an elegant web application framework, extremely flexible
yet extremely simple. It's similar to Ruby on Rails, Spring (Java), and
L<Maypole|Maypole>, upon which it was originally based. Its most
-important design philosphy is to provide easy access to all the tools
+important design philosophy is to provide easy access to all the tools
you need to develop web applications, with few restrictions on how you
need to use these tools. However, this does mean that it is always
possible to do things in a different way. Other web frameworks are
From a style perspective it's usually considered bad form to make your
model "too smart" about things - it should worry about business logic
and leave the integration details to the controllers. If, however, you
-find that it does not make sense at all to use an auxillary controller
+find that it does not make sense at all to use an auxiliary controller
around the model, and the model's need to access C<$c> cannot be
sidestepped, there exists a power tool called L</ACCEPT_CONTEXT>.
directly to the method name, ignoring the controller namespace.
C<:Global> always matches from the application root: it is simply
-shorthandfor C<:Path('/methodname')>. C<:Local> is shorthand for
+shorthand for C<:Path('/methodname')>. C<:Local> is shorthand for
C<:Path('methodname')>, which takes the controller namespace as described
above.
=item *
-Kieren Diment for his oversite of Catalyst-related documentation.
+Kieren Diment for his oversight of Catalyst-related documentation.
=item *
eth0 from the C<ifconfig> command). For example, if your VM has an
IP address of 192.168.0.12, you will want to use a base URL of
C<http://192.168.0.12:3000>. Note that the development server
-defaults to port 3000 (you can change with with the "-p" option on the
-command line.
+defaults to port 3000 (you can change with the "-p" option on the
+command line).
B<Please Note:> Depending on the web browser you are using, you might
need to hit C<Shift+Reload> or C<Ctrl+Reload> to pull a fresh page when
screen that starts with "Caught exception in
MyApp::Controller::Root->index" with sections showing a stacktrace,
information about the Request and Response objects, the stash (something
-we will learn about soon), the applications configuration configuration.
+we will learn about soon), and the applications configuration.
B<Just don't forget to remove the die before you continue the tutorial!>
:-)
=head2 DATABASE CONFIG SWITCHING USING MULTIPLE CONFIG FILES
-L<Catalyst::Plugin::ConfigLoader> has functionality to load loading
-multiple config files based on environment variablesi, allowing you to
+L<Catalyst::Plugin::ConfigLoader> has functionality to load
+multiple config files based on environment variables, allowing you to
override your default (production) database connection settings during
development (or vice versa).
In keeping with the Catalyst (and Perl) spirit of flexibility, there are
many different ways to approach advanced CRUD operations in a Catalyst
environment. Therefore, this section of the tutorial allows you to pick
-from one of several modules that that cover different form management
+from one of several modules that cover different form management
tools. Select one or more options from the list below.
=head1 ADVANCED CRUD OPTIONS