X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial.pod;h=91d11acc7743c79e78506caa74119f871818cdfb;hb=64ccd8a8bfbc16276c044c94702b1440c2897695;hp=118950b858d4ccbc166cbad0bbc07d7577fa3dc8;hpb=eff5f524553d82eb1672709248a6a2fdaaf0b089;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Manual/Tutorial.pod b/lib/Catalyst/Manual/Tutorial.pod index 118950b..91d11ac 100644 --- a/lib/Catalyst/Manual/Tutorial.pod +++ b/lib/Catalyst/Manual/Tutorial.pod @@ -1,339 +1,521 @@ =head1 NAME -Catalyst::Manual::Tutorial - Getting started with Catalyst +Catalyst::Manual::Tutorial - Catalyst Tutorial: Overview + + =head1 DESCRIPTION -This document aims to get you up and running with Catalyst. - -NOTE: THIS DOCUMENT IS STILL VERY MUCH IN AN EARLY DRAFT STATE. SEE -THE NOTES AT THE BOTTOM OF THE DOCUMENT. - -=head2 Installation - -The first step is to install Catalyst, and the simplest way to do this -is to install the Catalyst bundle from CPAN: - - $ perl -MCPAN -e 'install Bundle::Catalyst' - -This will retrieve Catalyst and a number of useful extensions and -install them for you. - - -=head2 Setting up your application - -Catalyst includes a helper script, C, that will set up a -skeleton application for you: - - created "My-App" - created "My-App/script" - created "My-App/lib" - created "My-App/root" - created "My-App/t" - created "My-App/t/m" - created "My-App/t/v" - created "My-App/t/c" - created "My-App/lib/My/App" - created "My-App/lib/My/App/M" - created "My-App/lib/My/App/V" - created "My-App/lib/My/App/C" - created "My-App/lib/My/App.pm" - created "My-App/Build.PL" - created "My-App/Makefile.PL" - created "My-App/README" - created "My-App/Changes" - created "My-App/t/01app.t" - created "My-App/t/02pod.t" - created "My-App/t/03podcoverage.t" - created "My-App/script/my_app_cgi.pl" - created "My-App/script/my_app_fastcgi.pl" - created "My-App/script/my_app_server.pl" - created "My-App/script/my_app_test.pl" - created "My-App/script/my_app_create.pl" +The Catalyst framework is a flexible and comprehensive environment for +quickly building high-functionality web applications. This tutorial is +design to provide a rapid introduction to its basics and most commonly +used features while focusing on real-world best practices. + +The tutorial is broken down into the following sections: + +=over 4 + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=back + + +Full source code is available for each section via the main Catalyst +Subversion repository at +L. See the +end of each section for the specifics on retrieving code for that +section. + +A tarball of the final application is available at +C. + +=head1 Detailed Table Of Contents + +=head2 Part 1: Introduction + +=over 4 + +=item * + +VERSIONS AND CONVENTIONS USED IN THIS TUTORIAL + +=item * + +CATALYST INSTALLATION + +=item * + +DATABASES + +=item * + +WHERE TO GET WORKING CODE + +=back + + +=head2 Part 2: Catalyst Application Development Basics + +=over 4 + +=item * + +CREATE A CATALYST PROJECT + +=item * + +CREATE A SQLITE DATABASE + +=item * + +EDIT THE LIST OF CATALYST PLUGINS + +=item * + +DATABASE ACCESS WITH DBIx::Class + +=over 4 + +=item * + +Create a DBIC Schema File + +=item * + +Create the DBIC ``Result Source'' Files + +=item * + +Use Catalyst::Model::DBIC::Schema To Load The Model Class + +=back + +=item * + +CREATE A CATALYST CONTROLLER + +=item * + +CATALYST VIEWS + +=over 4 + +=item * + +Create a Catalyst View Using TTSITE + +=item * + +Globally Customize Every View + +=item * + +Create a TT Template Page + +=back -This creates the directory structure shown, populated with skeleton -files. +=item * +RUN THE APPLICATION +=back -=head2 Testing out the sample application -You can test out your new application by running the server script that -Catalyst provides: +=head2 Part 3: Basic CRUD - $ cd My-App - $ script/my_app_server.pl +=over 4 - [...] [catalyst] [debug] Debug messages enabled - [...] [catalyst] [debug] Loaded dispatcher "Catalyst::Dispatcher" - [...] [catalyst] [debug] Loaded engine "Catalyst::Engine::HTTP" - [...] [catalyst] [debug] Found home "/usr/home/jester/foo/My-App/script/.." - [...] [catalyst] [debug] Loaded private actions - .=--------------------------------+------------------------------------=. - | Private | Class | - |=--------------------------------+------------------------------------=| - | /default | My::App | - '=--------------------------------+------------------------------------=' +=item * - [....] [catalyst] [info] My::App powered by Catalyst 5.20 - You can connect to your server at http://localhost:3000/ +FORMLESS SUBMISSION -(Note that each line logged by Catalyst begins with a timestamp, which has -been replaced here with "C<...>" so that the text fits onto the lines.) +=over 4 -The server is now waiting for you to make requests of it. Try using -telnet to manually make a simple GET request of the server (when -telnet responds with "Escape character is '^]'.", type "GET / HTTP/1.0" -and hit return twice): +=item * - $ telnet localhost 3000 - Trying 127.0.0.1... - Connected to localhost. - Escape character is '^]'. - GET / HTTP/1.0 - - HTTP/1.0 200 - Server: Catalyst/5.20 - Status: 200 - Date: Fri May 13 14:15:46 EDT 2005 - X-catalyst: 5.20 - Content-length: 40 - Content-Type: text/html; charset=ISO-8859-1 +Include a Create Action in the Books Controller - Congratulations, My::App is on Catalyst! - Connection closed by foreign host. - $ +=item * -More trace messages will appear in the original terminal window: +Include a Template for the url_create Action: - [...] [catalyst] [debug] ******************************** - [...] [catalyst] [debug] * Request 1 (0.027/s) [9818] - [...] [catalyst] [debug] ******************************** - [...] [catalyst] [debug] "GET" request for "" from localhost - [...] [catalyst] [info] Request took 0.051399s (19.456/s) - .=--------------------------------------------------+----------=. - | Action | Time | - |=--------------------------------------------------+----------=| - | /default | 0.000026s | - '=--------------------------------------------------+----------=' - -The server will continue running until you interrupt it. +=item * -The application can also be tested from the command line using the generated -helper script, C