Add "Quick Start" section
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Tutorial / 01_Intro.pod
CommitLineData
d442cc9f 1=head1 NAME
2
3ab6187c 3Catalyst::Manual::Tutorial::01_Intro - Catalyst Tutorial - Chapter 1: Introduction
d442cc9f 4
5
6=head1 OVERVIEW
7
4b4d3884 8This is B<Chapter 1 of 10> for the Catalyst tutorial.
d442cc9f 9
10L<Tutorial Overview|Catalyst::Manual::Tutorial>
11
12=over 4
13
14=item 1
15
3ab6187c 16B<01_Introduction>
d442cc9f 17
18=item 2
19
3ab6187c 20L<Catalyst Basics|Catalyst::Manual::Tutorial::02_CatalystBasics>
d442cc9f 21
22=item 3
23
3ab6187c 24L<More Catalyst Basics|Catalyst::Manual::Tutorial::03_MoreCatalystBasics>
d442cc9f 25
26=item 4
27
3ab6187c 28L<Basic CRUD|Catalyst::Manual::Tutorial::04_BasicCRUD>
d442cc9f 29
30=item 5
31
3ab6187c 32L<Authentication|Catalyst::Manual::Tutorial::05_Authentication>
d442cc9f 33
34=item 6
35
3ab6187c 36L<Authorization|Catalyst::Manual::Tutorial::06_Authorization>
d442cc9f 37
38=item 7
39
3ab6187c 40L<Debugging|Catalyst::Manual::Tutorial::07_Debugging>
d442cc9f 41
42=item 8
43
3ab6187c 44L<Testing|Catalyst::Manual::Tutorial::08_Testing>
d442cc9f 45
46=item 9
47
3ab6187c 48L<Advanced CRUD|Catalyst::Manual::Tutorial::09_AdvancedCRUD>
1def4a20 49
50=item 10
51
3ab6187c 52L<Appendices|Catalyst::Manual::Tutorial::10_Appendices>
d442cc9f 53
54=back
55
1def4a20 56
d442cc9f 57=head1 DESCRIPTION
58
ffeb7448 59This tutorial provides a multi-part introduction to the Catalyst web
d442cc9f 60framework. It seeks to provide a rapid overview of many of its most
61commonly used features. The focus is on the real-world best practices
62required in the construction of nearly all Catalyst applications.
63
64Although the primary target of the tutorial is users new to the Catalyst
65framework, experienced users may wish to review specific sections (for
1def4a20 66example, how to use DBIC for their model classes, how to add
67authentication and authorization to an existing application, or form
68management).
d442cc9f 69
70You can obtain the code for all the tutorial examples from the
71catalyst subversion repository by issuing the command:
72
028b4e1a 73 svn co http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/ CatalystTutorial
d442cc9f 74
75b13da6 75This will download the most recent code for each chapter of the
76tutorial into the CatalystTutorial directory on your machine.
d442cc9f 77
3d9ae335 78B<These reference implementations are provided so that when you follow
79the tutorial, you can use the code from the subversion repository to
80ensure that your system is set up correctly, and that you have not
81inadvertently made any typographic errors, or accidentally skipped
82part of the tutorial.>
83
ffeb7448 84B<NOTE: You can use any Perl-supported OS and environment to run
3533daff 85Catalyst.> It should make little or no difference to Catalyst's
acbd7bdd 86operation, B<but this tutorial has been written using the Debian 5
3f043f41 87live CD> because that represents a quick and easy way for most people to
acbd7bdd 88try out Catalyst with virtually zero setup time and hassles. Also,
89the tutorial has been tested to work correctly with the versions of
90Catalyst and all the supporting modules in Debian 5 (see "VERSIONS
91AND CONVENTIONS USED IN THIS TUTORIAL" below for the specific versions
92for some of the key modules), so B<if you think you might be running
93into an issue related to versions> (for example, a module changed its
94behavior in a newer version or a bug was introduced), B<it might be
444d6b27 95worth giving Debian 5 a try>.
3533daff 96
444d6b27 97If you plan to follow along with Debian 5, you can jump down to the
98"Debian" section under L</"CATALYST INSTALLATION"> below and it will walk you
99though the setup of a fully functional Catalyst environment. If you
100would prefer to install directly from CPAN, you can download the example
3533daff 101program and all the necessary dependencies to your local machine by
444d6b27 102installing the C<Task::Catalyst::Tutorial> distribution:
d442cc9f 103
104 cpan Task::Catalyst::Tutorial
105
106This will also test to make sure the dependencies are working. If you
107have trouble installing these, please ask for help on the #catalyst
108IRC channel, or the Catalyst mailing list.
109
3533daff 110Subjects covered by the tutorial include:
d442cc9f 111
112=over 4
113
114=item *
115
116A simple application that lists and adds books.
117
118=item *
119
acbd7bdd 120The use of L<DBIx::Class|DBIx::Class> (DBIC) for the model (including
121some of the more advanced techniques you will probably want to use in
122your applications).
d442cc9f 123
124=item *
125
126How to write CRUD (Create, Read, Update, and Delete) operations in
127Catalyst.
128
129=item *
130
131Authentication ("auth").
132
133=item *
134
135Role-based authorization ("authz").
136
137=item *
138
418ded01 139Attempts to provide an example showing current (5.8XXX) Catalyst
d442cc9f 140practices. For example, the use of
141L<Catalyst::Action::RenderView|Catalyst::Action::RenderView>,
142DBIC, L<Catalyst::Plugin::ConfigLoader|Catalyst::Plugin::ConfigLoader>
45d511e0 143with C<myapp.conf>, the use of C<lib/MyApp/Controller/Root.pm>
d442cc9f 144vs. C<lib/MyApp.pm>, etc.
145
146=item *
147
1390ef0e 148The use of Template Toolkit (TT).
d442cc9f 149
150=item *
151
152Useful techniques for troubleshooting and debugging Catalyst
153applications.
154
155=item *
156
157The use of SQLite as a database (with code also provided for MySQL and
444d6b27 158PostgreSQL). (Note: Because we make use of the DBIx::Class Object
159Relational Mapping [ORM] layer, out our application will be database
160agnostic and can easily be used by any of the databases supported
161by DBIx::Class.)
d442cc9f 162
163=item *
164
0abc72ed 165The use of L<HTML::FormFu|HTML::FormFu> or L<HTML::FormHandler|HTML::FormHandler>
166for automated form processing and validation.
d442cc9f 167
168=back
169
170This tutorial makes the learning process its main priority. For
171example, the level of comments in the code found here would likely be
1def4a20 172considered excessive in a "normal project." Because of their contextual
d442cc9f 173value, this tutorial will generally favor inline comments over a
174separate discussion in the text. It also deliberately tries to
175demonstrate multiple approaches to various features (in general, you
176should try to be as consistent as possible with your own production
177code).
178
179Furthermore, this tutorial tries to minimize the number of controllers,
180models, TT templates, and database tables. Although this does result in
181things being a bit contrived at times, the concepts should be applicable
182to more complex environments. More complete and complicated example
183applications can be found in the C<examples> area of the Catalyst
184Subversion repository at
185L<http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/>.
186
1390ef0e 187
2e73e2be 188=head1 QUICK START
189
190For those who want to get going quickly, here is a short "cookbook-style
191recipe" to quickly get you up and running. Although there are many
192different ways to get a Catalyst environment going, this tutorial has
193been written with and tested against Debian 5 Live CD, using the steps
194in this Quick Start.
195
196If you want, you can follow the directions in this section and then jump
197right to L<Chapter 2|Catalyst::Manual::Tutorial::02_CatalystBasics> of
198the tutorial. However, it would be a good idea to come back and read the
199sections below the Quick Start when you have time. Or, continue reading
200those other sections for suggestions if you do not wish to use the
201Debian 5 Live CD.
202
203
204=over 4
205
206=item 1
207
208Download the C<debian-live-503-i386-rescue.iso> image from
209L<http://cdimage.debian.org/cdimage/release/current-live/i386/iso-cd/>.
210
211=item 2
212
213Boot this disk, either in a physical machine, or possibly some sort
214of virtual machine (can be a very handy way to practice).
215
216=item 3
217
218Select "C<Live>" from the initial boot menu.
219
220=item 4
221
222At the "C<user@debian:~$>" prompt, type:
223
224 sudo aptitude -y install subversion
225
226=item 5
227
228If you want to be able to remotely SSH to this system, set a
229password for root:
230
231 sudo passwd
232 ...
233
234=item 6
235
236Add the "unstable" Debian package repository:
237
238 sudo vi /etc/apt/sources.list
239
240Add the following line to the bottom of this file:
241
242 deb http://ftp.us.debian.org/debian/ unstable main
243
244=item 7
245
246Install Catalyst and related libraries:
247
248 sudo aptitude update
249 sudo aptitude -y install sqlite3 libdbd-sqlite3-perl libcatalyst-perl \
250 libcatalyst-modules-perl libdbix-class-timestamp-perl \
251 libdatetime-format-sqlite-perl libconfig-general-perl \
252 libhtml-formfu-model-dbic-perl libterm-readline-perl-perl \
253 libdbix-class-encodedcolumn-perl libperl6-junction-perl
254 sudo aptitude clean
255
256=item 8
257
258Test example code:
259
260 mkdir test
261 cd test
262 svn co http://dev.catalystframework.org/repos/Catalyst/trunk/examples/Tutorial/MyApp_Chapter8
263 cd MyApp_Chapter8/MyApp
264 CATALYST_DEBUG=0 prove -wl t
265 cd
266
267=back
268
269
d442cc9f 270=head1 VERSIONS AND CONVENTIONS USED IN THIS TUTORIAL
271
272This tutorial was built using the following resources. Please note that
273you may need to make adjustments for different environments and
6163536a 274versions (note that trailing zeros in version numbers are not
275significant and may get dropped with techniques for viewing them;
276for example, Catalyst v5.80020 might show up as 5.8002):
d442cc9f 277
278=over 4
279
280=item *
281
acbd7bdd 282Debian 5 (Lenny)
d442cc9f 283
284=item *
285
6163536a 286Catalyst v5.80020 (note: may show up as '5.8002' without the trailing zero)
dd88c3b6 287
22a67212 288=item *
dd88c3b6 289
6163536a 290Catalyst::Devel v1.26
d442cc9f 291
292=item *
293
6163536a 294DBIx::Class v0.08115
d442cc9f 295
fce83e5f 296=item *
297
2e73e2be 298Catalyst::Model::DBIC::Schema v0.40
299
300=item *
301
fce83e5f 302Template Toolkit v2.20
303
2e73e2be 304
d442cc9f 305=item *
306
307Catalyst Plugins
308
309The plugins used in this tutorial all have sufficiently stable APIs that
310you shouldn't need to worry about versions. However, there could be
311cases where the tutorial is affected by what version of plugins you
312use. This tutorial has been tested against the following set of plugins:
313
314=over 4
315
316=item *
317
6163536a 318Catalyst::Plugin::Authentication -- v0.10016
d442cc9f 319
320=item *
321
6163536a 322Catalyst::Plugin::Authorization::Roles -- v0.08
d442cc9f 323
324=item *
325
f34d7f62 326Catalyst::Plugin::ConfigLoader -- v0.27
d442cc9f 327
328=item *
329
f34d7f62 330Catalyst::Plugin::Session -- v0.29
d442cc9f 331
332=item *
333
f34d7f62 334Catalyst::Plugin::Session::State::Cookie -- v0.17
d442cc9f 335
336=item *
337
f34d7f62 338Catalyst::Plugin::Session::Store::FastMmap -- v0.13
d442cc9f 339
340=item *
341
f34d7f62 342Catalyst::Plugin::StackTrace -- v0.11
d442cc9f 343
344=item *
345
2e73e2be 346Catalyst::Plugin::Static::Simple -- v0.29
d442cc9f 347
348=back
349
2e73e2be 350=item *
351
352HTML::FormFu -- v0.06001
353
d442cc9f 354=item *
355
865d3efb 356B<NOTE:> You can check the versions you have installed with the
357following command:
358
896ec184 359 perl -M<_mod_name_> -e '"print $<_mod_name_>::VERSION\n"'
865d3efb 360
361For example:
865d3efb 362
444d6b27 363 perl -MCatalyst -e 'print "$Catalyst::VERSION\n";'
364
365or:
366
367 perl -MCatalyst::Devel -e 'print "$Catalyst::Devel::VERSION\n";'
d442cc9f 368
369=item *
370
444d6b27 371This tutorial will assume that the web browser is located on the same
372system where the Catalyst development server is running, and
373therefore use a URL of C<http://localhost:3000> (the Catalyst
374development server defaults to port 3000). If you are running Perl on
375a different box than where your web browser is located (or using a
376different port number via the C<-p> I<port_number> option to the
377development server), then you will need to update the URL you use
378accordingly.
379
380Please Note: Depending on the web browser you are using, you might
381need to hit C<Shift+Reload> or C<Ctrl+Reload> to pull a fresh page
382when testing your application at various points (see
383L<http://en.wikipedia.org/wiki/Bypass_your_cache> for a comprehensive
1390ef0e 384list of options for each browser). Also, the C<-k> keepalive option
385to the development server can be necessary with some browsers
386(especially Internet Explorer).
d442cc9f 387
388=back
389
1390ef0e 390
d442cc9f 391=head1 CATALYST INSTALLATION
392
acbd7bdd 393Although Catalyst installation has been a challenge in the past, the
394good news is that there are a growing number of options to eliminate
395(or at least dramatically simplify) this concern. Although a
396compelling strength of Catalyst is that it makes use of many of the
397modules in the vast repository that is CPAN, this can complicate the
398installation process if you approach it in the wrong way. Consider
399the following suggestions on the most common ways to get started with
400a Catalyst development environment:
1def4a20 401
402=over 4
403
404=item *
405
acbd7bdd 406Debian
407
408The Debian 5 live CD represents a great way for newcomers to
409experiment with Catalyst. As a "live CD," you can simple boot from
410the CD, run a few commands, and in a matter of minutes you should have
411a fully function environment in which do this tutorial. B<The tutorial
412was fully tested to work under Debian 5. Although it SHOULD work
413under any Catalyst installation method you might choose, it can be
414hard to guarantee this.>
415
416=over 4
417
418=item *
419
420Download one of the ISO files from
6163536a 421L<http://cdimage.debian.org/cdimage/release/current-live/i386/iso-cd/>
422(the current version at the time this was written was 5.0.3).
acbd7bdd 423You can pick any one of the live CD variations will work, but
424you may wish to consider the following points:
425
426=over 4
427
428=item *
429
6163536a 430"C<debian-live-503-i386-rescue.iso>" is probably the best all-around
acbd7bdd 431option for most people because it includes many extra tools such as
432the GCC compiler, therefore saving RAM (every package you need to
433install when running from live CD consumes memory because RAM disk is
434being used in lieu of real disk space). When initially booting under
435this image, you may see some cryptic warning messages having to do
436with various diagnostic tools it tries to load or enable, but you
437should be able to safely ignore these.
438
439=item *
440
6163536a 441"C<debian-live-503-i386-standard.iso>" is a great option because of
acbd7bdd 442its compact size, but you will probably need approximately 1 GB of RAM
443in the computer where you will run the tutorial. Because the
444"standard" live CD comes with with a minimal set of tools, we will
445have to install extra packages (such as the GCC compiler), all of
446which will require RAM when running from a live CD.
447
448=item *
449
450The other ISO images include different flavors of X-Windows desktop
451managers. You can select one of these if you don't mind the larger
452download size and prefer a graphical environment. Be aware that these
453disks do not come with the extra tools found on the "rescue" image, so
454you will need adequate RAM to be able to install them just as you
455would under the "standard" image. B<Use one of the "graphical" ISO
456images if you want a graphical web browser on the same machine as
457where you will run the tutorial.> (If you are using one of the non-
458graphical images discussed above, you can still use a graphical web
459browser from another machine and point it to your Catalyst development
460machine.)
461
462=back
463
464=item *
465
466Boot off the CD.
467
468=item *
469
470Select "C<Live>" from the initial boot menu.
471
472=item *
473
6163536a 474Once the system has booted to a "C<user@debian:~$>" prompt, first
475install the Subversion client in case you want to check out the
476completed chapter example code:
477
0ed3df53 478 sudo aptitude -y install subversion
6163536a 479
2e73e2be 480If you want to be able to remotely SSH to this system, set a
481password for root:
482
483 sudo passwd
484 ...
485
6163536a 486Then enter the following command to add the more current "unstable"
487package repository so we get the latest versions of Catalyst and
488related packages:
acbd7bdd 489
490 sudo vi /etc/apt/sources.list
491
492Add the following line to the bottom of this file:
493
494 deb http://ftp.us.debian.org/debian/ unstable main
495
496If you are not familiar with VI, you can move to the bottom of this
497file and press the "o" key to insert a new line and type the line
498above. Then press the "Esc" key followed by a colon (":"), the
499letters "wq" and then the "Enter" key. The rest of the tutorial will
500assume that you know how to use some editor that is available from the
501Linux command-line environment.
502
503=item *
504
505Install Catalyst:
506
507 sudo aptitude update
508 sudo aptitude -y install sqlite3 libdbd-sqlite3-perl libcatalyst-perl \
444d6b27 509 libcatalyst-modules-perl libdbix-class-timestamp-perl \
2314f851 510 libdatetime-format-sqlite-perl libconfig-general-perl \
9314188c 511 libhtml-formfu-model-dbic-perl libterm-readline-perl-perl \
2ff49205 512 libdbix-class-encodedcolumn-perl libperl6-junction-perl
444d6b27 513
514Let it install (normally about a 30 to 90-second operaton) and you are
515done. (Note the '\' above. Depending on your environment, you might
516be able to cut and paste the text as shown or need to remove the '\'
fce83e5f 517characters to that the command is all on a single line.)
acbd7bdd 518
519If you are using an image other than the "rescue" ISO, you will also need
520to run the following command to install additional packages:
521
522 sudo aptitude -y install gcc make libc6-dev
523
524If you are running from the Live CD, you probably also want to free up
525some RAM disk space with the following:
526
527 sudo aptitude clean
528
529NOTE: While the instructions above mention the Live CD because that
530makes it easy for people new to Linux, you can obviously pick a
531different Debian ISO image and install it to your hard drive.
532Although there are many different ways to download and install Debian,
533the "netinst" ISO image (such as "C<debian-500-i386-netinst.iso>"
534represents a great option because it keeps your initial download small
535(but still let's you install anything you want "over the network").
536
537Here are some tips if you are running from a live CD and are running
538out of disk space (which really means you are running out of RAM):
539
540=over 4
541
542=item *
543
544Always run "C<aptitude clean>" after you install new packages to
545delete the original .deb files (the files installed B<by> the .deb
546package B<will> remain available, just the .deb package itself is
547deleted).
548
549=item *
550
551If you are installing modules from CPAN, you can free up some space
444d6b27 552with "C<rm -rf /root/.cpan/*>" (change "/root/" in the previous
553command to match your home directory or the location where CPAN
554has been configured to perform build operations).
acbd7bdd 555
556=item *
557
558If necessary, you can remove the cached package information with the
559command "C<rm -f /var/lib/apt/lists/*>". You can later pull this
560information again via the command "C<aptitude update>".
561
562=item *
563
564You can save a small amount of space by commenting out the lines in
565C</etc/apt/sources.list> that reference "deb-src" and
566"security.debian.org". If you have already done an "C<aptitude
567update>" with these repositories enabled, you can use the tip in the
568previous bullet to free the space up (and then do another "C<aptitude
569update>").
570
571=item *
572
573Although you can free up space by removing packages you installed
574since you last booted (check out "C<aptitude remove _pkg_name>"),
575don't bother trying to remove packages already available at the time
576of boot. Instead of freeing up space, it will actual I<consume> some
577space. (The live CD uses these "burn in" packages right from the CD
578disk vs. first loading them on the virtual RAM disk. However, if you
579remove them, the system has to update various files, something that
580I<does> consume some space on the virtual RAM disk.)
581
582=back
583
584=back
585
586=item *
587
1def4a20 588Ubuntu
589
acbd7bdd 590Ubuntu is an extremely popular offshoot of Debian. It provides
591cutting edge versions of many common tools, application and libraries
592in an easy-to-run live CD configuration (and because a single download
593option can be used for both live CD and install-to-disk usage, it
594keeps your download options nice and simple). As with Debian 5, you
595should be able to generate a fully function Catalyst environment in a
596matter of minutes. Here are quick instructions on how to use Ubuntu
597to prepare for the tutorial:
d442cc9f 598
599=over 4
600
601=item *
602
acbd7bdd 603Download the Ubuntu Desktop edition and boot from the CD and/or image
604file, select your language, and then "Try Ubuntu without any changes
605to your computer."
1def4a20 606
607=item *
608
3533daff 609Open a terminal session (click "Applications" in the upper-left
610corner, then "Accessories," then "Terminal").
1def4a20 611
612=item *
613
614Add the 'universe' repositories:
615
3533daff 616 sudo gedit /etc/apt/sources.list
1def4a20 617
618And remove the comments from the lines under the comments about the
619'universe' repositories.
620
621=item *
622
623Install Catalyst:
624
acbd7bdd 625 sudo aptitude update
626 sudo aptitude install libdbd-sqlite3-perl libcatalyst-perl libcatalyst-modules-perl libconfig-general-perl
1def4a20 627
2b75577c 628Accept all of the dependencies. Done.
629
630If you are running from the Live CD, you probably also want to free up
631some disk space with the following:
632
acbd7bdd 633 sudo aptitude clean
2b75577c 634
acbd7bdd 635NOTE: While the instructions above mention the live CD because that
2b75577c 636makes it easy for people new to Linux, you can obviously also use one
637of the options to install Ubuntu on your drive.
3533daff 638
1def4a20 639=back
640
641=item *
642
d442cc9f 643Matt Trout's C<cat-install>
644
1ee1c3c3 645Available at L<http://www.shadowcat.co.uk/static/cat-install>,
ffeb7448 646C<cat-install> can be a fairly painless way to get Catalyst up and
647running. Just download the script from the link above and type C<perl
648cat-install>. Depending on the speed of your Internet connection and
649your computer, it will probably take 30 to 60 minutes to install because
650it downloads, makes, compiles, and tests every module. But this is an
651excellent way to automate the installation of all the latest modules
652used by Catalyst from CPAN.
653
d442cc9f 654
655=item *
656
ffeb7448 657Other Possibilities
658
659=over 4
660
661=item *
662
663OpenBSD Packages
664
665The 2008 Advent Day 4 entry has more information on using OpenBSD
666packages to quickly build a system:
667L<http://www.catalystframework.org/calendar/2008/4>.
668
669=item *
d442cc9f 670
ffeb7448 671NetBSD Package Collection on Solaris
672
673The 2008 Advent Day 15 entry has more information on using C<pkgsrc> and
674NetBSD packages on Solaris:
1435672d 675L<http://www.catalystframework.org/calendar/2008/15>.
d442cc9f 676
677=item *
678
ffeb7448 679CatInABox
680
681You can get more information at
682L<http://www.catalystframework.org/calendar/2008/7>
683or L<Perl::Dist::CatInABox|Perl::Dist::CatInABox>.
684
0c51850e 685=item *
686
687Frank Speiser's Amazon EC2 Catalyst SDK
688
689There are currently two flavors of publicly available Amazon Machine
690Images (AMI) that include all the elements you'd need to begin
691developing in a fully functional Catalyst environment within minutes.
692See L<Catalyst::Manual::Installation|Catalyst::Manual::Installation>
693for more details.
694
d442cc9f 695=back
696
ffeb7448 697=back
698
d442cc9f 699For additional information and recommendations on Catalyst installation,
700please refer to
701L<Catalyst::Manual::Installation|Catalyst::Manual::Installation>.
702
1390ef0e 703
d442cc9f 704=head1 DATABASES
705
706This tutorial will primarily focus on SQLite because of its simplicity
707of installation and use; however, modifications in the script required
acbd7bdd 708to support MySQL and PostgreSQL will be presented in Appendix.
d442cc9f 709
710B<Note:> One of the advantages of the MVC design patterns is that
711applications become much more database independent. As such, you will
712notice that only the C<.sql> files used to initialize the database
713change between database systems: the Catalyst code generally remains the
714same.
715
1390ef0e 716
d442cc9f 717=head1 WHERE TO GET WORKING CODE
718
4b4d3884 719Each chapter of the tutorial has complete code available as a tarball in
028b4e1a 720the main Catalyst Subversion repository (see the note at the beginning
721of each part for the appropriate svn command to use).
d442cc9f 722
4b4d3884 723B<NOTE:> You can run the test cases for the final code through Chapter 8
028b4e1a 724with the following commands:
d442cc9f 725
0ed3df53 726 svn co http://dev.catalystframework.org/repos/Catalyst/trunk/examples/Tutorial/MyApp_Chapter8
727 cd MyApp_Chapter8/MyApp
96a87356 728 CATALYST_DEBUG=0 prove -wl t
d442cc9f 729
96a87356 730If you wish to include the L<HTML::FormFu|HTML::FormFu> section in your tests,
6163536a 731substitute C<MyApp_Chapter9_FormFu> for C<MyApp_Chapter8> in the URL
732above (don't forget to "cd" out of the Ch8 directory if you ran the code above).
acbd7bdd 733
0ed3df53 734 svn co http://dev.catalystframework.org/repos/Catalyst/trunk/examples/Tutorial/MyApp_Chapter9_FormFu
735 cd MyApp_Chapter9_FormFu/MyApp
96a87356 736 CATALYST_DEBUG=0 prove -wl t
acbd7bdd 737
738You can also fire up the application under the development server that is conveniently
739built in to Catalyst. Just issue this command from the C<MyApp> directory where you
740ran the test suite above:
741
742 script/myapp_server.pl
743
744And the application will start. You can try out the application by
745pulling up C<http://localhost:3000> in your web browser (as mentioned
746earlier, change C<localhost> to a different IP address or DNS name if
747you are running your web browser and your Catalyst development on
748different boxes). We will obviously see more about how to use the
4b4d3884 749application as we go through the remaining chapters of the tutorial, but
acbd7bdd 750for now you can log in using the username "test01" and a password of
751"mypass".
752
d442cc9f 753
754=head1 AUTHOR
755
756Kennedy Clark, C<hkclark@gmail.com>
757
758Please report any errors, issues or suggestions to the author. The
759most recent version of the Catalyst Tutorial can be found at
59884771 760L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Tutorial/>.
d442cc9f 761
45c7830f 762Copyright 2006-2008, Kennedy Clark, under Creative Commons License
865d3efb 763(L<http://creativecommons.org/licenses/by-sa/3.0/us/>).