X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2FMoreCatalystBasics.pod;h=e125cd748a9c8af0bc44b28088ecb19b64772b2b;hp=24c9157855cf6bed9a98cc4e07cd2001f52afeee;hb=4ab6212da7a5e07df9837b0e57fb2b0c37aa9759;hpb=1435672d3f51326b8f15006abcfe98180e89becb diff --git a/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod b/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod index 24c9157..e125cd7 100644 --- a/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod +++ b/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod @@ -1,11 +1,11 @@ =head1 NAME -Catalyst::Manual::Tutorial::MoreCatalystBasics - Catalyst Tutorial - Part 3: More Catalyst Application Development Basics +Catalyst::Manual::Tutorial::MoreCatalystBasics - Catalyst Tutorial - Chapter 3: More Catalyst Application Development Basics =head1 OVERVIEW -This is B for the Catalyst tutorial. +This is B for the Catalyst tutorial. L @@ -56,13 +56,13 @@ L =head1 DESCRIPTION -This part of the tutorial builds on the work done in Part 2 to explore -some features that are more typical of "real world" web applications. -From this part of the tutorial onward, we will be building a simple -book database application. Although the application will be too -limited to be of use to anyone, it should provide a basic environment -where we can explore a variety of features used in virtually all web -applications. +This chapter of the tutorial builds on the work done in Chapter 2 to +explore some features that are more typical of "real world" web +applications. From this chapter of the tutorial onward, we will be +building a simple book database application. Although the application +will be too limited to be of use to anyone, it should provide a basic +environment where we can explore a variety of features used in +virtually all web applications. You can checkout the source code for this example from the catalyst subversion repository as per the instructions in @@ -74,8 +74,8 @@ L. The remainder of the tutorial will build an application called C. First use the Catalyst C script to initialize the framework for the C application (make sure you aren't still inside the -directory of the C application from the previous part of the -tutorial): +directory of the C application from the previous chapter of the +tutorial or in a directory that already has a "MyApp" subdirectory): $ catalyst.pl MyApp created "MyApp" @@ -86,7 +86,7 @@ tutorial): created "MyApp/script/myapp_create.pl" $ cd MyApp -This creates a similar skeletal structure to what we saw in Part 2 of +This creates a similar skeletal structure to what we saw in Chapter 2 of the tutorial, except with C and C substituted for C and C. @@ -138,7 +138,7 @@ L file (versus having the values hard-coded inside your Perl modules). Config::General uses syntax very similar to Apache configuration files. We will see how to use this feature of Catalyst during the authentication and authorization -sections (Part 5 and Part 6). +sections (Chapter 5 and Chapter 6). B If you are using a version of L prior to version 1.06, be aware @@ -173,31 +173,27 @@ as images and CSS files under the development server. For our application, we want to add one new plugin into the mix. To do this, edit C (this file is generally referred to as -your I) and delete the line with: +your I) and delete the lines with: - __PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/); + use Catalyst qw/-Debug + ConfigLoader + Static::Simple/; Then replace it with: - __PACKAGE__->setup(qw/ - -Debug - ConfigLoader - Static::Simple - - StackTrace - /); + # Load plugins + use Catalyst qw/-Debug + ConfigLoader + Static::Simple + + StackTrace + /; B Recent versions of C have used a variety of -techniques to load these plugins/flags. If you are following along in -Ubuntu 8.10, you should have C v1.07 and see the -default code shown above. If you are using v1.08, you should see the -following by default: +techniques to load these plugins/flags. For example, you might see +the following: - use Catalyst qw/-Debug - ConfigLoader - Static::Simple/; - ... - __PACKAGE__->setup(); + __PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/); Don't let these variations confuse you -- they all accomplish the same result. @@ -251,7 +247,7 @@ actions: created "/home/me/MyApp/script/../lib/MyApp/Controller/Books.pm" created "/home/me/MyApp/script/../t/controller_Books.t" -Then edit C (as discussed in Part 2 of +Then edit C (as discussed in Chapter 2 of the Tutorial, Catalyst has a separate directory under C for each of the three parts of MVC: C, C, and C) and add the following method to the controller: @@ -378,7 +374,7 @@ types not discussed here (C and C). =head1 CATALYST VIEWS -As mentioned in Part 2 of the tutorial, views are where you render +As mentioned in Chapter 2 of the tutorial, views are where you render output, typically for display in the user's web browser (but also possibly using other display output-generation systems). The code in C selects the I of view to use, with the actual @@ -411,7 +407,7 @@ L Both helpers are similar. C creates the C file and leaves the creation of any hierarchical template organization entirely up to you. (It also creates a C file for testing; -test cases will be discussed in Part 8.) C, on the other hand, +test cases will be discussed in Chapter 8.) C, on the other hand, creates a modular and hierarchical view layout with separate Template Toolkit (TT) files for common header and footer information, configuration values, a CSS stylesheet, and more. @@ -466,6 +462,12 @@ C to C. These changes from the default are done mostly to facilitate the application we're developing in this tutorial; as with most things Perl, there's more than one way to do it... +B We will use C as the base directory for our +template files, which a full naming convention of +C. Another popular option is to +use C as the base (with a full filename pattern of +C). + =head2 Create a TT Template Page @@ -603,7 +605,7 @@ can use the SQLite command line environment to do a quick dump of the database contents: $ sqlite3 myapp.db - SQLite version 3.4.2 + SQLite version 3.5.9 Enter ".help" for instructions sqlite> select * from books; 1|CCSP SNRS Exam Certification Guide|5 @@ -632,6 +634,7 @@ your OS command prompt. For using other databases, such as PostgreSQL or MySQL, see L. + =head1 DATABASE ACCESS WITH C Catalyst can be used with virtually any form of persistent datastore @@ -652,7 +655,8 @@ Use the C model helper option to build a model that dynamically reads your database structure every time the application starts: - $ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema create=dynamic dbi:SQLite:myapp.db + $ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema \ + create=dynamic dbi:SQLite:myapp.db exists "/home/me/MyApp/script/../lib/MyApp/Model" exists "/home/me/MyApp/script/../t" exists "/home/me/MyApp/script/../lib/MyApp" @@ -701,9 +705,10 @@ use the C option that we switch to below. =head1 ENABLE THE MODEL IN THE CONTROLLER -Open C and un-comment the model code we -left disabled earlier (un-comment the line containing -C<[$c-Emodel('DB::Books')-Eall]> and delete the next 2 lines): +Open C and un-comment the model code we +left disabled earlier so that your version matches the following (un- +comment the line containing C<[$c-Emodel('DB::Books')-Eall]> +and delete the next 2 lines): =head2 list @@ -752,7 +757,7 @@ and L. =head2 Test Run The Application First, let's enable an environment variable that causes DBIx::Class to -dump the SQL statements usedß to access the database. This is a +dump the SQL statements used to access the database. This is a helpful trick when you are trying to debug your database-oriented code: @@ -771,7 +776,7 @@ log). Then launch the Catalyst development server. The log output should display something like: - $script/myapp_server.pl + $ script/myapp_server.pl [debug] Debug messages enabled [debug] Statistics enabled [debug] Loaded plugins: @@ -819,8 +824,8 @@ display something like: | /books/list | /books/list | '-------------------------------------+--------------------------------------' - [info] MyApp powered by Catalyst 5.7014 - You can connect to your server at http://localhost:3000 + [info] MyApp powered by Catalyst 5.71000 + You can connect to your server at http://debian:3000 B Be sure you run the C