|
NAMECatalyst::Manual::Tutorial::01_Intro - Catalyst Tutorial - Chapter 1: IntroductionOVERVIEWThis is Chapter 1 of 10 for the Catalyst tutorial.Tutorial Overview
DESCRIPTIONThis tutorial provides a multi-part introduction to the Catalyst Web Framework. It seeks to provide a rapid overview of many of its most commonly used features. The focus is on the real-world best practices required in the construction of nearly all Catalyst applications.Although the primary target of the tutorial is users new to the Catalyst framework, experienced users may wish to review specific sections (for example, how to use DBIC for their model classes, how to add authentication and authorization to an existing application, and/or form management). The most recent code for the tutorial is included on the Tutorial Virtual Machine you can download from: <http://cattut.shadowcat.co.uk/> See "STARTING WITH THE TUTORIAL VIRTUAL MACHINE" below for instructions getting and using the VM. Should you wish to download the code directly, you get pull it via the following command (note: will probably be switching to git soon): svn co http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/ CatalystTutorial This will download the most recent code for each chapter of the tutorial into the CatalystTutorial directory on your machine. These reference implementations are provided so that when you follow the tutorial, you can use the code to ensure that your system is set up correctly (which shouldn't be an issue if you use the Tutorial Virtual Machine), :-) and that you have not inadvertently made any typographic errors, or accidentally skipped part of the tutorial. NOTE: You can use any Perl-supported OS and environment to run Catalyst. It should make little or no difference to Catalyst's operation, but this tutorial has been written using the Debian-based Tutorial Virtual Machine that you can download and use to work through the full tutorial step by step. WE STRONGLY RECOMMEND THAT YOU USE THE VIRTUAL MACHINE IMAGE TO WORK THROUGH THE TUTORIAL to avoid issues that may crop up if you are working with a different configuration. We have tested the Tutorial Virtual Machine to make sure all of the examples work correctly, but it is hard to guarantee this on other platforms and versions. If you would prefer to install directly from CPAN and not use the Tutorial Virtual machine, you can download the example program and all the necessary dependencies to your local machine by installing the Task::Catalyst::Tutorial distribution: cpan Task::Catalyst::Tutorial This will also test to make sure the dependencies are working. If you have trouble installing these, please ask for help on the #catalyst IRC channel, or the Catalyst mailing list. Subjects covered by the tutorial include:
This tutorial makes the learning process its main priority. For example, the level of comments in the code found here would likely be considered excessive in a "normal project." Because of their contextual value, this tutorial will generally favor inline comments over a separate discussion in the text. It also deliberately tries to demonstrate multiple approaches to various features (in general, you should try to be as consistent as possible with your own production code). Furthermore, this tutorial tries to minimize the number of controllers, models, TT templates, and database tables. Although this does result in things being a bit contrived at times, the concepts should be applicable to more complex environments. More complete and complicated example applications can be found at <http://wiki.catalystframework.org/wiki/resources/catalystexamples> and in the "examples" area of the Catalyst Subversion repository at <http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/>. STARTING WITH THE TUTORIAL VIRTUAL MACHINEThe steps below briefly outline how you can download the Tutorial Virtual Machine. This document uses the term "host machine" to refer to the physical machine where you will run the virtualization software and boot up the VM. The terms "guest machine" or just "VM" refer to the virtual machine itself -- the thing where you actually do the tutorial (and that you boot up on the "host machine").Note: Throughout the tutorial, we will shows the UNIX shell prompt as ""$"". If you are using the Tutorial VM, the prompt will really be ""catalyst@catalyst:~$"" (where ""~"" will change to show your current directory), but we will keep it short and just use ""$"".
You may note that the Tutorial Virtual Machine uses local::lib so that the Perl modules are run from ~/perl5 (in this case, /home/catalyst/perl5) vs. the usual location of your "system Perl". We recommend that you also consider using this very handy module. It can greatly ease the process of maintaining and testing different combinations or Perl modules across development, staging, and production servers. (The "relocatable Perl" feature can also be used to run both the modules and Perl itself from your home directory [or any other directory you chose]). Note: Please provide feedback on how the Virtual Machine approach for the tutorial works for you. If you have suggestions or comments, you can reach the author through the email address at the bottom of this page or via an RT ticket at <https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Manual>. Sorting Out Virtual Machine Network-Related IssuesIn general, using a virtual machine to work through the tutorial is *much* easier than trying to do it in other environments, especially if you are new to Catalyst (or Perl or CPAN or ...). However, it's possible that you could run into a few network-related issues. The good news is that there is lots of information about the issue available via search engines on the Internet. Here is some background information to get you started.In Step 5 of the prior section above, we assumed that a "Bridged Mode" configuration and DHCP will work (it should for most people). If DHCP is not working or is not available in your location, most virtual machine "host" environments let you select between one of several different types of networking between the "guest" and the "host" machine. 1) Bridged 2) NAT 3) Local host only The Tutorial Virtual Machine defaults to "Bridged" -- this should result in the VM acting like another device on your network that will get a different DHCP IP address than the host machine. The advantage of this approach, is that you can easily SSH and web browse to the guest virtual machine. In general, this is the best option if you want to be able to boot up the VM and then use your SSH client and web browser from your main machine to connect into the virtual machine. In some environments, you might have better luck with "NAT" (Network Address Translation) mode. With this configuration, the guest VM shares the same IP address as the host machine. The downside of this approach is that special configuration is required if you want to be able to SSH or web browse to the guest VM. The NAT option should automatically allow the VM "outbound connection" (e.g., to the Internet if you want to install additional Debian packages), but it requires special configuration if you want to get "inbound connections" that go from some other machine (including the "host machine") into the VM. Some virtual machine host environments let you configure a "static NAT" or "port forwarding" to reach the guest OS, but others omit this functionality. Note: NAT mode can work fine if you install X Windows and do the whole tutorial locally on the actual VM vs. using SSH and a web browser from your host machine. "Local host only" mode let's the guest VM and the host machine talk on a "private subnet" that other devices in your network cannot reach. This can work as long as you don't need to go from the VM to the Internet (for example, to install other Debian packages). Consult the documentation on your virtual machine host environment for help configuring the options above. Here are some links that might help:
VERSIONS AND CONVENTIONS USED IN THIS TUTORIALThis tutorial was built using the following resources. Please note that you may need to make adjustments for different environments and versions (note that trailing zeros in version numbers are not significant and may get dropped with some techniques for viewing them; for example, Catalyst v5.80020 might show up as 5.8002):
DATABASESThis tutorial will primarily focus on SQLite because of its simplicity of installation and use; however, modifications in the script required to support MySQL and PostgreSQL will be presented in the Appendix.Note: One of the advantages of using tools like Catalyst and DBIC is that applications become much more database independent. As such, you will notice that only the ".sql" files used to initialize the database change between database systems: most of the code generally remains the same. You can jump to the next chapter of the tutorial here: Catalyst Basics AUTHORKennedy Clark, "hkclark@gmail.com"Feel free to contact the author for any errors or suggestions, but the best way to report issues is via the CPAN RT Bug system at <https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Manual>. Copyright 2006-2011, Kennedy Clark, under the Creative Commons Attribution Share-Alike License Version 3.0 (<https://creativecommons.org/licenses/by-sa/3.0/us/>).
Visit the GSP FreeBSD Man Page Interface. |