environment where we can explore a variety of features used in virtually
all web applications.
-Source code for the tutorial in included in the F</root/Final> directory
-of the Tutorial Virtual machine (one subdirectory per chapter). There
-are also instructions for downloading the code in
+Source code for the tutorial in included in the F</home/catalyst/Final>
+directory of the Tutorial Virtual machine (one subdirectory per
+chapter). There are also instructions for downloading the code in
L<Catalyst::Manual::Tutorial::01_Intro>.
Please take a look at
=head1 EDIT THE LIST OF CATALYST PLUGINS
One of the greatest benefits of Catalyst is that it has such a large
-library of bases classes and plugins available that you can use easily
+library of base classes and plugins available that you can use to easily
add functionality to your application. Plugins are used to seamlessly
integrate existing Perl modules into the overall Catalyst framework. In
general, they do this by adding additional methods to the C<context>
=item *
-Use the C<$c-E<gt>debug> method on the C<$c> Catalyst context object
+the C<$c-E<gt>debug> method on the C<$c> Catalyst context object
=item *
-The C<-d> option to C<script/myapp_server.pl>
+the C<-d> option on the C<script/myapp_server.pl> script
=item *
-The C<CATALYST_DEBUG=1> environment variable (or use C<CATALYST_DEBUG=0>
-to temporarily disable debug output).
+the C<CATALYST_DEBUG=1> environment variable (or C<CATALYST_DEBUG=0>
+to temporarily disable debug output)
=back
=back
-For our application, we want to add one new plugin into the mix. To do
+For our application, we want to add one new plugin to the mix. To do
this, edit C<lib/MyApp.pm> (this file is generally referred to as your
I<application class>) and delete the lines with:
actions:
$ script/myapp_create.pl controller Books
- 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"
+ exists "/home/catalyst/MyApp/script/../lib/MyApp/Controller"
+ exists "/home/catalyst/MyApp/script/../t"
+ created "/home/catalyst/MyApp/script/../lib/MyApp/Controller/Books.pm"
+ created "/home/catalyst/MyApp/script/../t/controller_Books.t"
Then edit C<lib/MyApp/Controller/Books.pm> (as discussed in
L<Chapter 2|Catalyst::Manual::Tutorial::02_CatalystBasics> of
the Tutorial, Catalyst has a separate directory under C<lib/MyApp> for
-each of the three parts of MVC: C<Model>, C<View>, and C<Controller>)
+each of the three parts of MVC: C<Model>, C<View> and C<Controller>)
and add the following method to the controller:
=head2 list
C<TT> style of view rendering:
$ script/myapp_create.pl view HTML TT
- 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"
+ exists "/home/catalyst/MyApp/script/../lib/MyApp/View"
+ exists "/home/catalyst/MyApp/script/../t"
+ created "/home/catalyst/MyApp/script/../lib/MyApp/View/HTML.pm"
+ created "/home/catalyst/MyApp/script/../t/view_HTML.t"
This creates a view called C<HTML> (the first argument) in a file called
C<HTML.pm> that uses L<Catalyst::View::TT> (the second argument) as the
Please stick with the settings above for the duration of the tutorial,
but feel free to use whatever options you desire in your applications
-(as with most things Perl, there's more than one way to do it...).
+(as with most things in Perl, there's more than one way to do it...).
B<Note:> We will use C<root/src> as the base directory for our template
files, with a full naming convention of
$ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema \
create=static dbi:SQLite:myapp.db \
on_connect_do="PRAGMA foreign_keys = ON"
- exists "/root/MyApp/script/../lib/MyApp/Model"
- exists "/root/MyApp/script/../t"
- Dumping manual schema for MyApp::Schema to directory /root/MyApp/script/../lib ...
+ exists "/home/catalyst/MyApp/script/../lib/MyApp/Model"
+ exists "/home/catalyst/MyApp/script/../t"
+ Dumping manual schema for MyApp::Schema to directory /home/catalyst/MyApp/script/../lib ...
Schema dump completed.
- created "/root/MyApp/script/../lib/MyApp/Model/DB.pm"
- created "/root/MyApp/script/../t/model_DB.t"
+ created "/home/catalyst/MyApp/script/../lib/MyApp/Model/DB.pm"
+ created "/home/catalyst/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 '\'
Additionally, the C<lib/MyApp/Schema.pm> model can easily be loaded
outside of Catalyst, for example, in command-line utilities and/or cron
jobs. C<lib/MyApp/Model/DB.pm> provides a very thin "bridge" between
-Catalyst this external database model. Once you see how we can add some
-powerful features to our DBIC model in
+Catalyst and this external database model. Once you see how we can
+add some powerful features to our DBIC model in
L<Chapter 4|Catalyst::Manual::Tutorial::04_BasicCRUD>, the elegance
of this approach will start to become more obvious.
[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine"
- [debug] Found home "/root/MyApp"
- [debug] Loaded Config "/root/MyApp/myapp.conf"
+ [debug] Found home "/home/catalyst/MyApp"
+ [debug] Loaded Config "/home/catalyst/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |