X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2F03_MoreCatalystBasics.pod;h=54ddd14a010b384e000a4c0b36d281d4f29a2d71;hp=d8ba67c10978e9e784302b547ab9aff3b937b3ee;hb=b1b6582a2c886a0ae462b778150b2d2a358e1fd9;hpb=c988c8b093c26a7205881bfd4eb6f0bf9a5834dd diff --git a/lib/Catalyst/Manual/Tutorial/03_MoreCatalystBasics.pod b/lib/Catalyst/Manual/Tutorial/03_MoreCatalystBasics.pod index d8ba67c..54ddd14 100644 --- a/lib/Catalyst/Manual/Tutorial/03_MoreCatalystBasics.pod +++ b/lib/Catalyst/Manual/Tutorial/03_MoreCatalystBasics.pod @@ -64,16 +64,19 @@ 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 check out the source code for this example from the Catalyst -Subversion repository as per the instructions in +Source code for the tutorial in included in the F directory +of the Tutorial Virtual machine (one subdirectory per chapter). There +are also instructions for downloading the code in L. Please take a look at -L before -doing the rest of this tutorial. Although the tutorial should work -correctly under most any recent version of Perl running on any operating -system, the tutorial has been written using Debian 6 and tested to be -sure it runs correctly in this environment. +L +before doing the rest of this tutorial. Although the tutorial should +work correctly under most any recent version of Perl running on any +operating system, the tutorial has been written using the virtual +machine that is available for download. The entire tutorial has been +tested to be sure it runs correctly in this environment, so it is +the most trouble-free way to get started with Catalyst. =head1 CREATE A NEW APPLICATION @@ -234,9 +237,9 @@ Don't let these variations confuse you -- they all accomplish the same result. This tells Catalyst to start using one additional plugin, -L, to add a stack trace to the standard -Catalyst "debug screen" (the screen Catalyst sends to your browser when -an error occurs). Be aware that +L, to add a stack trace near the top of +the standard Catalyst "debug screen" (the screen Catalyst sends to your +browser when an error occurs). Be aware that L output appears in your browser, not in the console window from which you're running your application, which is where logging output usually goes. @@ -296,10 +299,10 @@ Use the Catalyst C script to add a controller for book-related actions: $ script/myapp_create.pl controller Books - exists "/home/me/MyApp/script/../lib/MyApp/Controller" - exists "/home/me/MyApp/script/../t" - created "/home/me/MyApp/script/../lib/MyApp/Controller/Books.pm" - created "/home/me/MyApp/script/../t/controller_Books.t" + exists "/root/MyApp/script/../lib/MyApp/Controller" + exists "/root/MyApp/script/../t" + created "/root/MyApp/script/../lib/MyApp/Controller/Books.pm" + created "/root/MyApp/script/../t/controller_Books.t" Then edit C (as discussed in L of @@ -458,10 +461,10 @@ For our book application, enter the following command to enable the C style of view rendering: $ script/myapp_create.pl view HTML TT - exists "/home/me/MyApp/script/../lib/MyApp/View" - exists "/home/me/MyApp/script/../t" - created "/home/me/MyApp/script/../lib/MyApp/View/HTML.pm" - created "/home/me/MyApp/script/../t/view_HTML.t" + exists "/root/MyApp/script/../lib/MyApp/View" + exists "/root/MyApp/script/../t" + created "/root/MyApp/script/../lib/MyApp/View/HTML.pm" + created "/root/MyApp/script/../t/view_HTML.t" This creates a view called C (the first argument) in a file called C that uses L (the second argument) as the @@ -505,12 +508,15 @@ could be different depending on the version of Catalyst you are using): ); -Change this to match the following: +Change this to match the following (insert a new +C<__PACKAGE__-Econfig> below the existing statement): __PACKAGE__->config( name => 'MyApp', # Disable deprecated behavior needed by old applications disable_component_resolution_regex_fallback => 1, + ); + __PACKAGE__->config( # Configure the view 'View::HTML' => { #Set the location for TT files @@ -739,44 +745,16 @@ technique that we see in L). -=head2 Make Sure You Have a Recent Version of the DBIx::Class Model +=head2 Create Static DBIx::Class Schema Files -First, let's be sure we have a recent version of the DBIC helper, -L, so that we can take advantage of some -recent enhancements in how foreign keys are handled with SQLite. To -check your version, run this command: +B If you are not following along in the Tutorial Virtual Machine, +please be sure that you have version 1.27 or higher of DBD::SQLite and +version 0.39 or higher of Catalyst::Model::DBIC::Schema. (The Tutorial +VM already has versions that are known to work.) You can get your +currently installed version numbers with the following commands. $ perl -MCatalyst::Model::DBIC::Schema\ 999 - Catalyst::Model::DBIC::Schema version 999 required--this is only version 0.41. - BEGIN failed--compilation aborted. - -The part we are after is the "version 0.41" at the end of the second -line. If you are following along in Debian 6, you should have version -0.41 or higher. If you have less than v0.39, you will need to run this -command to install it directly from CPAN: - - $ cpan -i Catalyst::Model::DBIC::Schema - -And re-run the version print command to verify that you are now at 0.39 -or higher. - -In addition, since we are using SQLite's foreign key support here, -please be sure that you use version C<1.27> of L or later: - $ perl -MDBD::SQLite\ 999 - DBD::SQLite version 999 required--this is only version 1.29. - BEGIN failed--compilation aborted. - -Upgrade if you are not at version C<1.27> or higher. - -Open C and add the following lines to require these versions -going forward: - - requires 'Catalyst::Model::DBIC::Schema' => '0.39'; - requires 'DBD::SQLite' => '1.27'; - - -=head2 Create Static DBIx::Class Schema Files Before you continue, make sure your C database file is in the application's topmost directory. Now use the model helper with the @@ -787,12 +765,12 @@ automatically build the required files for us: $ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema \ create=static dbi:SQLite:myapp.db \ on_connect_do="PRAGMA foreign_keys = ON" - exists "/home/me/MyApp/script/../lib/MyApp/Model" - exists "/home/me/MyApp/script/../t" - Dumping manual schema for MyApp::Schema to directory /home/me/MyApp/script/../lib ... + exists "/root/MyApp/script/../lib/MyApp/Model" + exists "/root/MyApp/script/../t" + Dumping manual schema for MyApp::Schema to directory /root/MyApp/script/../lib ... Schema dump completed. - created "/home/me/MyApp/script/../lib/MyApp/Model/DB.pm" - created "/home/me/MyApp/script/../t/model_DB.t" + created "/root/MyApp/script/../lib/MyApp/Model/DB.pm" + created "/root/MyApp/script/../t/model_DB.t" Please note the '\' above. Depending on your environment, you might be able to cut and paste the text as shown or need to remove the '\' @@ -840,9 +818,9 @@ at C, you will see that the SQLite pragma is propagated to the Model, so that SQLite's recent (and optional) foreign key enforcement is enabled at the start of every database connection. - =back + If you look in the C file, you will find that it only contains a call to the C method. You will also find that C contains a C subdirectory, which then has @@ -978,14 +956,14 @@ display something like: [debug] Statistics enabled [debug] Loaded plugins: .----------------------------------------------------------------------------. - | Catalyst::Plugin::ConfigLoader 0.27 | + | Catalyst::Plugin::ConfigLoader 0.30 | | Catalyst::Plugin::StackTrace 0.11 | '----------------------------------------------------------------------------' [debug] Loaded dispatcher "Catalyst::Dispatcher" - [debug] Loaded engine "Catalyst::Engine::HTTP" - [debug] Found home "/home/me/MyApp" - [debug] Loaded Config "/home/me/MyApp/myapp.conf" + [debug] Loaded engine "Catalyst::Engine" + [debug] Found home "/root/MyApp" + [debug] Loaded Config "/root/MyApp/myapp.conf" [debug] Loaded components: .-----------------------------------------------------------------+----------. | Class | Type | @@ -1021,7 +999,7 @@ display something like: '-------------------------------------+--------------------------------------' [info] MyApp powered by Catalyst 5.80020 - You can connect to your server at http://debian:3000 + HTTP::Server::PSGI: Accepting connections at http://0:3000 B Be sure you run the C