=head1 OVERVIEW
-This is B<Part 1 of 9> of the Catalyst Tutorial.
+This is B<Part 2 of 10> for the Catalyst tutorial.
L<Tutorial Overview|Catalyst::Manual::Tutorial>
=item 3
-L<Basic CRUD|Catalyst::Manual::Tutorial::BasicCRUD>
+L<More Catalyst Basics|Catalyst::Manual::Tutorial::MoreCatalystBasics>
=item 4
-L<Authentication|Catalyst::Manual::Tutorial::Authentication>
+L<Basic CRUD|Catalyst::Manual::Tutorial::BasicCRUD>
=item 5
-L<Authorization|Catalyst::Manual::Tutorial::Authorization>
+L<Authentication|Catalyst::Manual::Tutorial::Authentication>
=item 6
-L<Debugging|Catalyst::Manual::Tutorial::Debugging>
+L<Authorization|Catalyst::Manual::Tutorial::Authorization>
=item 7
-L<Testing|Catalyst::Manual::Tutorial::Testing>
+L<Debugging|Catalyst::Manual::Tutorial::Debugging>
=item 8
-L<Advanced CRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
+L<Testing|Catalyst::Manual::Tutorial::Testing>
=item 9
+L<Advanced CRUD|Catalyst::Manual::Tutorial::AdvancedCRUD>
+
+=item 10
+
L<Appendices|Catalyst::Manual::Tutorial::Appendices>
=back
+
=head1 DESCRIPTION
This tutorial provides a multipart introduction to the Catalyst web
Although the primary target of the tutorial is users new to the Catalyst
framework, experienced users may wish to review specific sections (for
-example, how to use DBIC for their model classes or how to add
-authentication and authorization to an existing application).
+example, how to use DBIC for their model classes, how to add
+authentication and authorization to an existing application, or form
+management).
You can obtain the code for all the tutorial examples from the
catalyst subversion repository by issuing the command:
inadvertently made any typographic errors, or accidentally skipped
part of the tutorial.>
-Additionally, if you're reading this manual online, you can download
-the example program and all the necessary dependencies to
-your local machine by installing the C<Task::Catalyst::Tutorial>
-distribution from CPAN:
+B<NOTE: You can use any perl-supported OS and environment to run
+Catalyst.> It should make little or no difference to Catalyst's
+operation, but this tutorial has been written using Ubuntu 8.04
+because that represents a quick and easy for most people to try out
+Catalyst with virtually zero setup time and hassles. See the Catalyst
+installation section below for more information.
+
+If you're reading this manual online, you can download the example
+program and all the necessary dependencies to your local machine by
+installing the C<Task::Catalyst::Tutorial> distribution from CPAN:
cpan Task::Catalyst::Tutorial
have trouble installing these, please ask for help on the #catalyst
IRC channel, or the Catalyst mailing list.
-Subjects covered include:
+Subjects covered by the tutorial include:
=over 4
practices. For example, the use of
L<Catalyst::Action::RenderView|Catalyst::Action::RenderView>,
DBIC, L<Catalyst::Plugin::ConfigLoader|Catalyst::Plugin::ConfigLoader>
-with C<myapp.yml>, the use of C<lib/MyApp/Controller/Root.pm>
+with C<myapp.conf>, the use of C<lib/MyApp/Controller/Root.pm>
vs. C<lib/MyApp.pm>, etc.
=item *
=item *
-The use of L<HTML::Widget|HTML::Widget> for automated form processing
+The use of L<HTML::FormFu|HTML::FormFu> for automated form processing
and validation.
=back
This tutorial makes the learning process its main priority. For
example, the level of comments in the code found here would likely be
-considered excessive in a "normal project". Because of their contextual
+considered excessive in a "normal project." Because of their contextual
value, this tutorial will generally favor inline comments over a
separate discussion in the text. It also deliberately tries to
demonstrate multiple approaches to various features (in general, you
=item *
-OS = CentOS 4 Linux (RHEL 4)
+Ubuntu 8.04 Hardy Heron
=item *
-Catalyst v5.6902
+Catalyst v5.7011
+
+=item *
+
+Catalyst::Devel v1.03
=item *
-DBIx::Class v0.06003
+DBIx::Class v0.08008
=item *
=item *
-Catalyst::Plugin::Authentication -- 0.09
+Catalyst::Plugin::Authentication -- v0.10002
=item *
-Catalyst::Plugin::Authentication::Store::DBIC -- 0.07
+Catalyst::Plugin::Authentication::Store::DBIC -- v0.09
=item *
-Catalyst::Plugin::Authorization::ACL -- 0.08
+Catalyst::Plugin::Authorization::ACL -- v0.08
=item *
-Catalyst::Plugin::Authorization::Roles -- 0.04
+Catalyst::Plugin::Authorization::Roles -- v0.05
=item *
-Catalyst::Plugin::ConfigLoader -- 0.13
+Catalyst::Plugin::ConfigLoader -- v0.17
=item *
-Catalyst::Plugin::HTML::Widget -- 1.1
+Catalyst::Plugin::Session -- v0.18
=item *
-Catalyst::Plugin::Session -- 0.12
+Catalyst::Plugin::Session::State::Cookie -- v0.08
=item *
-Catalyst::Plugin::Session::State::Cookie -- 0.05
+Catalyst::Plugin::Session::Store::FastMmap -- v0.03
=item *
-Catalyst::Plugin::Session::Store::FastMmap -- 0.02
+Catalyst::Plugin::StackTrace -- v0.06
=item *
-Catalyst::Plugin::StackTrace -- 0.06
-
-=item *
-
-Catalyst::Plugin::Static::Simple -- 0.14
+Catalyst::Plugin::Static::Simple -- v0.20
=back
=head1 CATALYST INSTALLATION
-Unfortunately, one of the most daunting tasks faced by newcomers to
-Catalyst is getting it installed. Although a compelling strength of
-Catalyst is that it can easily make use of many of the modules in the
-vast repository that is CPAN, this can result in initial installations
-that are both time consuming and frustrating. However, there are a
-growing number of methods that can dramatically ease this undertaking.
-Of these, the following are likely to be applicable to the largest
-number of potential new users:
+While the rough edges of catalyst installation have been a problem in
+the past, this is now mostly solved. Nonetheless, installing Catalyst
+can be a little time consuming. Although a compelling strength of
+Catalyst is that it makes use of many of the modules in the vast
+repository that is CPAN, this can complicate the installation process.
+However, there are a growing number of methods that can dramatically
+ease this undertaking. Of these, the following are likely to be
+applicable to the largest number of potential new users:
+
+=over 4
+
+=item *
+
+Ubuntu
+
+Given the popularity of Ubuntu and it's ease of use, Ubuntu can be
+a great way for newcomers to experiment with Catalyst. Because it
+is a "live CD," you can simply boot from the CD, run a few commands,
+and you should have a fully functional environment in which to do
+this tutorial in a matter of minutes.
=over 4
=item *
+Download Ubuntu 8.04 (aka, Hardy Heron) Desktop edition and boot from
+the CD and/or image file, select your language, and then "Try Ubuntu
+without any changes to your computer."
+
+=item *
+
+Open a terminal session (click "Applications" in the upper-left
+corner, then "Accessories," then "Terminal").
+
+=item *
+
+Add the 'universe' repositories:
+
+ sudo gedit /etc/apt/sources.list
+
+And remove the comments from the lines under the comments about the
+'universe' repositories.
+
+=item *
+
+Install Catalyst:
+
+ sudo apt-get update
+ sudo apt-get install libdbd-sqlite3-perl libcatalyst-perl libcatalyst-modules-perl libconfig-general-perl
+
+Accept all of the dependencies. Done.
+
+NOTE: If you are low on disk space after the above commands (use C<df />
+to tell), you can free up some space with
+C<sudo rm /var/cache/apt/archives/*.deb> (the Live CD uses memory for
+disk space, so having a decent amount of memory will help). And,
+while the instructions above mention the Live CD because that makes it
+easy for people new to Linux, you can obviously also use one of the
+options to install Ubuntu on your drive.
+
+=back
+
+=item *
+
Matt Trout's C<cat-install>
Available at L<http://www.shadowcatsystems.co.uk/static/cat-install>,
already been installed, complete with database engines and a full
complement of Catalyst plugins.
+=item *
+
+Frank Speiser's Amazon EC2 Catalyst SDK
+
+There are currently two flavors of publicly available Amazon Machine
+Images (AMI) that include all the elements you'd need to begin
+developing in a fully functional Catalyst environment within minutes.
+See L<Catalyst::Manual::Installation|Catalyst::Manual::Installation>
+for more details.
+
=back
For additional information and recommendations on Catalyst installation,
most recent version of the Catalyst Tutorial can be found at
L<http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/>.
-Copyright 2006, Kennedy Clark, under Creative Commons License
+Copyright 2006-2008, Kennedy Clark, under Creative Commons License
(L<http://creativecommons.org/licenses/by-nc-sa/2.5/>).