X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2FMoreCatalystBasics.pod;h=3ec9249593b78d5914f09e6f4a9303df80454bc3;hb=994b66ad3ec2a66fb5d22957474229422b9ce110;hp=b5ac7bda2f4ba91c042a44ad48cc69f381795280;hpb=94d8da411a980c822af29da44d4cbf62a72c25c1;p=catagits%2FCatalyst-Manual.git diff --git a/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod b/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod index b5ac7bd..3ec9249 100644 --- a/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod +++ b/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod @@ -151,7 +151,7 @@ C (or any other format supported by L and L). If you are using a versions of Catalyst::Devel prior to 1.06, you can convert to the newer format by -simply creating the C file manually and deleting +simply creating the C file manually and deleting C. The default contents of C should only consist of one line: C. @@ -348,18 +348,20 @@ L =back -Both are similar, but C merely creates the C +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.) On the other hand, the -C helper creates a modular and hierarchical view layout with +test cases will be discussed in Part 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. -While TTSite is useful to bootstrap a project, most in the Catalyst -community recommend that it's easier to learn both Catalyst and -Template Toolkit if you use the more basic TT approach. Consequently, -this tutorial will use "plain old TT." +While C was useful to bootstrap a project, its use is now +deprecated and to be considered historical. For most Catalyst +applications it adds redundant functionality and structure; many in the +Catalyst community recommend that it's easier to learn both Catalyst and +Template Toolkit if you use the more basic C approach. +Consequently, this tutorial will use "plain old TT." Enter the following command to enable the C style of view rendering for this tutorial: @@ -391,7 +393,7 @@ And update it to match: TEMPLATE_EXTENSION => '.tt2', # Set the location for TT files INCLUDE_PATH => [ - MyApp->path_to( 'root/src' ), + MyApp->path_to( 'root', 'src' ), ], ); @@ -400,7 +402,9 @@ quote. This changes the default extension for Template Toolkit from '.tt' to '.tt2' and changes the base directory for your template files from -C to C. +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... =head2 Create a TT Template Page @@ -565,6 +569,8 @@ required if you do a single SQL statement on the command line). Use ".q" to exit from SQLite from the SQLite interactive mode and return to your OS command prompt. +For using other databases, such as PostgreSQL or MySQL, see +L. =head1 DATABASE ACCESS WITH C @@ -602,8 +608,12 @@ to C. Because we specified C to the helper, it use L to dynamically load the schema information from the database every time -the application starts. And finally, C is the -standard DBI connect string for use with SQLite. +the application starts. DBIC uses the schema to load other classes +that represent the tables in your database (DBIC refers to these +"table objects" as "result sources," see +L). And finally, +C is the standard DBI connect string for use with +SQLite. B Although the C option to the DBIC helper makes for a nifty demonstration, is only really suitable for very @@ -639,9 +649,26 @@ C<[$c-Emodel('DB::Books')-Eall]> and delete the next 2 lines): $c->stash->{template} = 'books/list.tt2'; } -B: You may see the C<$c-Emodel('DB::Book')> un-commented above -written as C<$c-Emodel('DB')-Eresultset('Book')>. The two -are equivalent. +B: You may see the C<$c-Emodel('DB::Book')> un-commented +above written as C<$c-Emodel('DB')-Eresultset('Book')>. The +two are equivalent. Either way, C<$c-Emodel> returns a +L which handles queries +against the database and iterating over the set of results that are +returned. + +We are using the C<-Eall> to fetch all of the books. DBIC +supports a wide variety of more advanced operations to easily do +things like filtering and sorting the results. For example, the +following could be used to sort the results by descending title: + + $c->model('DB::Books')->search({}, {order_by => 'title DESC'}); + +Some other examples are provided in +L, with +additional information found at L, +L, +L +and L. =head2 Test Run The Application @@ -784,7 +811,7 @@ Edit C and change it to match the following: TEMPLATE_EXTENSION => '.tt2', # Set the location for TT files INCLUDE_PATH => [ - MyApp->path_to( 'root/src' ), + MyApp->path_to( 'root', 'src' ), ], # Set to 1 for detailed timer stats in your HTML as comments TIMER => 0, @@ -836,7 +863,7 @@ For the tutorial, open C and input the following: - + @@ -974,7 +1001,7 @@ L as its base class (L is only being used by the helper to load the schema once and then create the static files for us) and C only contains a call to the -C method. You will also find that C +C method. You will also find that C contains a C subdirectory, with one file inside this directory for each of the tables in our simple database (C, C, and C). These three files were created @@ -1103,11 +1130,13 @@ Make sure that the application loads correctly and that you see the three dynamically created model class (one for each of the table-specific schema classes we created). -Then hit the URL L and be sure that -the book list is displayed. +Then hit the URL L and be sure that +the book list is displayed via the relationships established above. You +can leave the development server running for the next step if you wish. -You can leave the development server running for the next step if you -wish. +B You will not see the authors yet because the view does not yet +use the new relations. Read on to the next section where we update the +template to do that. =head1 UPDATING THE VIEW @@ -1149,15 +1178,23 @@ enabled, you should also now see five more C