From: Jonathan Rockway Date: Fri, 27 Oct 2006 18:16:39 +0000 (+0000) Subject: Catalyst::Manual is now in the correct state. X-Git-Tag: v5.8005~367 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=commitdiff_plain;h=5e6026272f809951ac22fae43b73d2c1dc79c7fc Catalyst::Manual is now in the correct state. --- diff --git a/lib/Catalyst/Manual/Tutorial.pod b/lib/Catalyst/Manual/Tutorial.pod new file mode 100644 index 0000000..de9a4f9 --- /dev/null +++ b/lib/Catalyst/Manual/Tutorial.pod @@ -0,0 +1,585 @@ +=head1 NAME + +Catalyst::Manual::Tutorial - Catalyst Tutorial: Overview + +=head1 DESCRIPTION + +The Catalyst framework is a flexible and comprehensive environment for +quickly building high-functionality web applications. This tutorial is +designed to provide a rapid introduction to its basics and its most +commonly used features while focusing on real-world best practices. + +The tutorial is divided into the following sections: + +B CLICK THESE LINKS TO JUMP TO CHAPTERS (the index links above +only navigate inside this page). + +=over 4 + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=back + +A tarball of the final application is available at +L. + + +=head1 Detailed Table of Contents + +=head2 L + +=over 4 + +=item * + +VERSIONS AND CONVENTIONS USED IN THIS TUTORIAL + +=item * + +CATALYST INSTALLATION + +=item * + +DATABASES + +=item * + +WHERE TO GET WORKING CODE + +=back + + +=head2 L + +=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 * + +Using RenderView for the Default View + +=item * + +Globally Customize Every View + +=item * + +Create a TT Template Page + +=back + + +=item * + +RUN THE APPLICATION + +=item * + +USING THE DEFAULT TEMPLATE NAME + +=back + +=head2 L + +=over 4 + +=item * + +FORMLESS SUBMISSION + +=over 4 + +=item * + +Include a Create Action in the Books Controller + +=item * + +Include a Template for the url_create Action: + +=item * + +Try the url_create Feature + +=back + +=item * + +MANUALLY BUILDING A CREATE FORM + +=over 4 + +=item * + +Add a Method to Display the Form + +=item * + +Add a Template for the Form + +=item * + +Add Method to Process Form Values and Update Database + +=item * + +Test Out the Form + +=back + +=item * + +A SIMPLE DELETE FEATURE + +=over 4 + +=item * + +Include a Delete Link in the List + +=item * + +Add a Delete Action to the Controller + +=item * + +Try the Delete Feature + +=back + +=back + +=head2 L + +=over 4 + +=item * + +BASIC AUTHENTICATION + +=over 4 + +=item * + +Add Users and Roles to the Database + +=item * + +Add User and Role Information to DBIC Schema + +=item * + +Create New ``Result Source Objects'' + +=item * + +Sanity-Check Reload of Development Server + +=item * + +Include Authentication and Session Plugins + +=item * + +Configure Authentication + +=item * + +Add Login and Logout Controllers + +=item * + +Add a Login Form TT Template Page + +=item * + +Add Valid User Check + +=item * + +Displaying Content Only to Authenticated Users + +=item * + +Try Out Authentication + +=back + +=item * + +USING PASSWORD HASHES + +=over 4 + +=item * + +Get a SHA-1 Hash for the Password + +=item * + +Switch to SHA-1 Password Hashes in the Database + +=item * + +Enable SHA-1 Hash Passwords in Catalyst::Plugin::Authentication::Store::DBIC + +=item * + +Try Out the Hashed Passwords + +=back + +=back + +=head2 L + +=over 4 + +=item * + +BASIC AUTHORIZATION + +=over 4 + +=item * + +Update Plugins to Include Support for Authorization + +=item * + +Add Config Information for Authorization + +=item * + +Add Role-Specific Logic to the ``Book List'' Template + +=item * + +Limit Books::add to admin Users + +=item * + +Try Out Authentication And Authorization + +=back + +=item * + +ENABLE ACL-BASED AUTHORIZATION + +=over 4 + +=item * + +Add the Catalyst::Plugin::Authorization::ACL Plugin + +=item * + +Add ACL Rules to the Application Class + +=item * + +Add a Method to Handle Access Violations + +=back + +=back + +=head2 L + +=over 4 + +=item * + +LOG STATEMENTS + +=item * + +RUNNING CATALYST UNDER THE PERL DEBUGGER + +=item * + +DEBUGGING MODULES FROM CPAN + +=back + +=head2 L + +=over 4 + +=item * + +RUNNING THE "CANNED" CATALYST TESTS + +=item * + +RUNNING A SINGLE TEST + +=item * + +ADDING YOUR OWN TEST SCRIPT + +=item * + +SUPPORTING BOTH PRODUCTION AND TEST DATABASES + +=back + +=head2 L + +=over 4 + +=item * + +HTML::WIDGET FORM CREATION + +=over 4 + +=item * + +Add the HTML::Widget Plugin + +=item * + +Add a Form Creation Helper Method + +=item * + +Add Actions to Display and Save the Form + +=item * + +Update the CSS + +=item * + +Create a Template Page To Display The Form + +=item * + +Add Links for Create and Update via HTML::Widget + +=item * + +Test The Create Form + +=back + +=item * + +HTML::WIDGET VALIDATION AND FILTERING + +=over 4 + +=item * + +Add Constraints and Filters to the Widget Creation Method + +=item * + +Rebuild the Form Submission Method to Include Validation + +=item * + +Try Out the Form + +=back + +=item * + +Enable DBIx::Class::HTMLWidget Support + +=over 4 + +=item * + +Add DBIx::Class::HTMLWidget to DBIC Model + +=item * + +Use populate_from_widget in hw_create_do + +=back + +=back + +=head2 L + +=over 4 + +=item * + +APPENDIX 1: CUT AND PASTE FOR POD-BASED EXAMPLES + +=over 4 + +=item * + +"Un-indenting" with Vi/Vim + +=item * + +"Un-indenting" with Emacs + +=back + +=item * + +APPENDIX 2: USING MYSQL AND POSTGRESQL + +=over 4 + +=item * + +MySQL + +=item * + +PostgreSQL + +=back + +=item * + +APPENDIX 3: IMPROVED HASHING SCRIPT + +=back + + +=head1 THANKS + +This tutorial would not have been possible without the input of many +different people in the Catalyst community. In particular, the +primary author would like to thank: + +=over 4 + +=item * + +Sebastian Riedel for founding the Catalyst project. + +=item * + +The members of the Catalyst Core Team for their tireless efforts to +advance the Catalyst project. Although all of the Core Team members +have played a key role in this tutorial, it would have never been +possible without the critical contributions of: Matt Trout, for his +unfathomable knowledge of all things Perl and Catalyst (and his +willingness to answer lots of my questions); Jesse Sheidlower, for his +incredible skill with the written word and dedication to improving the +Catalyst documentation; and Yuval Kogman, for his work on the Catalyst +"Auth & Authz" plugins (the original focus of the tutorial) and other +key Catalyst modules. + +=item * + +Other Catalyst documentation folks like Kieren Diment, Gavin Henry, +and Jess Robinson (including their work on the original Catalyst +tutorial). + +=item * + +Everyone on #catalyst and #catalyst-dev. + +=item * + +People who have emailed me with corrections and suggestions on the +tutorial. As of the most recent release, this include: Florian Ragwitz, +Mauro Andreolini, Jim Howard, Giovanni Gigante, William Moreno, +Bryan Roach, Ashley Berlin, David Kamholz, Kevin Old, Henning Sprang, +Jeremy Jones, David Kurtz, and Ingo Wichmann. + +=back + +=head1 AUTHOR + +Kennedy Clark, C + +Please report any errors, issues or suggestions to the author. The +most recent version of the Catalyst Tutorial can be found at +L. + +Copyright 2006, Kennedy Clark, under Creative Commons License +(L). diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/AdvancedCRUD.pod b/lib/Catalyst/Manual/Tutorial/AdvancedCRUD.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/AdvancedCRUD.pod rename to lib/Catalyst/Manual/Tutorial/AdvancedCRUD.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Appendices.pod b/lib/Catalyst/Manual/Tutorial/Appendices.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Appendices.pod rename to lib/Catalyst/Manual/Tutorial/Appendices.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Authentication.pod b/lib/Catalyst/Manual/Tutorial/Authentication.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Authentication.pod rename to lib/Catalyst/Manual/Tutorial/Authentication.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Authorization.pod b/lib/Catalyst/Manual/Tutorial/Authorization.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Authorization.pod rename to lib/Catalyst/Manual/Tutorial/Authorization.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/BasicCRUD.pod b/lib/Catalyst/Manual/Tutorial/BasicCRUD.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/BasicCRUD.pod rename to lib/Catalyst/Manual/Tutorial/BasicCRUD.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/CatalystBasics.pod b/lib/Catalyst/Manual/Tutorial/CatalystBasics.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/CatalystBasics.pod rename to lib/Catalyst/Manual/Tutorial/CatalystBasics.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Debugging.pod b/lib/Catalyst/Manual/Tutorial/Debugging.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Debugging.pod rename to lib/Catalyst/Manual/Tutorial/Debugging.pod diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Intro.pod b/lib/Catalyst/Manual/Tutorial/Intro.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Intro.pod rename to lib/Catalyst/Manual/Tutorial/Intro.pod diff --git a/lib/Catalyst/Manual/Tutorial/README b/lib/Catalyst/Manual/Tutorial/README deleted file mode 100644 index 517893b..0000000 --- a/lib/Catalyst/Manual/Tutorial/README +++ /dev/null @@ -1,4 +0,0 @@ -The tutorial is now located in Task::Catalyst::Tutorial. See: - -http://dev.catalyst.perl.org/repos/Catalyst/trunk/Task-Catalyst-Tutorial/lib/Catalyst/Manual/Tutorial/ - diff --git a/lib/Catalyst/Manual/Tutorial/Tutorial/Testing.pod b/lib/Catalyst/Manual/Tutorial/Testing.pod similarity index 100% rename from lib/Catalyst/Manual/Tutorial/Tutorial/Testing.pod rename to lib/Catalyst/Manual/Tutorial/Testing.pod