[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
- | Catalyst::Plugin::ConfigLoader 0.27 |
+ | Catalyst::Plugin::ConfigLoader 0.30 |
'----------------------------------------------------------------------------'
[debug] Loaded dispatcher "Catalyst::Dispatcher"
- [debug] Loaded engine "Catalyst::Engine::HTTP"
- [debug] Found home "/home/me/Hello"
- [debug] Loaded Config "/home/me/Hello/hello.conf"
+ [debug] Loaded engine "Catalyst::Engine"
+ [debug] Found home "/home/catalyst/Hello"
+ [debug] Loaded Config "/home/catalyst/Hello/hello.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |
| / | /default |
'-------------------------------------+--------------------------------------'
- [info] Hello powered by Catalyst 5.80025
- You can connect to your server at http://debian:3000
+ [info] Hello powered by Catalyst 5.90002
+ HTTP::Server::PSGI: Accepting connections at http://0:3000/
Point your web browser to L<http://localhost:3000> (substituting a
different hostname or IP address as appropriate) and you should be
your URL). Information similar to the following should be appended to
the logging output of the development server:
- [info] *** Request 1 (0.001/s) [23194] [Sat Jan 16 11:09:18 2010] ***
- [debug] "GET" request for "/" from "127.0.0.1"
+ [info] Hello powered by Catalyst 5.90002
+ HTTP::Server::PSGI: Accepting connections at http://0:3000/
+ [info] *** Request 1 (0.067/s) [19026] [Tue Aug 30 17:24:32 2011] ***
+ [debug] "GET" request for "/" from "192.168.245.2"
[debug] Path is "/"
- [info] Request took 0.004851s (206.143/s)
+ [debug] Response Code: 200; Content-Type: text/html; charset=utf-8; Content-Length: 5613
+ [info] Request took 0.040895s (24.453/s)
.------------------------------------------------------------+-----------.
| Action | Time |
+------------------------------------------------------------+-----------+
- | /index | 0.000395s |
- | /end | 0.000425s |
+ | /index | 0.000916s |
+ | /end | 0.000877s |
'------------------------------------------------------------+-----------'
B<Note>: Press C<Ctrl-C> to break out of the development server if
sub index :Path :Args(0) {
my ( $self, $c ) = @_;
-
+
# Hello World
$c->response->body( $c->welcome_message );
}
The "C<$c>" here refers to the Catalyst context, which is used to access
the Catalyst application. In addition to many other things, the Catalyst
context provides access to "response" and "request" objects. (See
-L<Catalyst>, L<Catalyst::Response>, and
+L<Catalyst::Runtime>, L<Catalyst::Response>, and
L<Catalyst::Request>)
C<$c-E<gt>response-E<gt>body> sets the HTTP response (see
to the package C<Hello::Controller::Admin::Articles>, and the C<create>
method.
-Add the following subroutine to your C<lib/Hello/Controller/Root.pm>
-file:
+While you leave the C<script/hello_server.pl -r> command running the
+development server in one window (don't forget the "-r" on the end!),
+open another window and add the following subroutine to your
+C<lib/Hello/Controller/Root.pm> file:
sub hello :Global {
my ( $self, $c ) = @_;
-
+
$c->response->body("Hello, World!");
}
-Once you restart the server, you will need to use the new address
-L<http://localhost:3000/hello> instead of L<http://localhost:3000/> to see the
-changes.
-
B<TIP>: See Appendix 1 for tips on removing the leading spaces when
cutting and pasting example code from POD-based documents.
-Here you're sending your own string to the webpage.
-
-Save the file, and you should notice the following in your server output:
+Notice in the window running the Development Server that you should
+get output similar to the following:
Saw changes to the following files:
- - /home/me/Hello/lib/Hello/Controller/Root.pm (modify)
+ - /home/catalyst/Hello/lib/Hello/Controller/Root.pm (modify)
Attempting to restart the server
...
| /index | Hello::Controller::Root | index |
| /hello | Hello::Controller::Root | hello |
'----------------------+--------------------------------------+--------------'
-
- [debug] Loaded Path actions:
- .-------------------------------------+--------------------------------------.
- | Path | Private |
- +-------------------------------------+--------------------------------------+
- | / | /index |
- | / | /default |
- | /hello | /hello |
- '-------------------------------------+--------------------------------------'
...
+The development server noticed the change in C<Hello::Controller::Root>
+and automatically restarted itself.
+
Go to L<http://localhost:3000/hello> to see "Hello, World!". Also
notice that the newly defined 'hello' action is listed under "Loaded
Private actions" in the development server debug output.
In the Catalyst world a "View" itself is not a page of XHTML or a
template designed to present a page to a browser. Rather, it is the
module that determines the I<type> of view -- HTML, pdf, XML, etc. For
-the thing that generates the I<content> of that view (such as the a
+the thing that generates the I<content> of that view (such as a
Toolkit Template template file), the actual templates go under the
"root" directory.
the controller.
+You can jump to the next chapter of the tutorial here:
+L<More Catalyst Basics|Catalyst::Manual::Tutorial::03_MoreCatalystBasics>
+
+
+
=head1 AUTHORS
Gerda Shank, C<gerda.shank@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>.
-
-The most recent version of the Catalyst Tutorial can be found at
-L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Tutorial/>.
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Manual>.
-Copyright 2006-2010, Kennedy Clark, under the
+Copyright 2006-2011, Kennedy Clark, under the
Creative Commons Attribution Share-Alike License Version 3.0
(L<http://creativecommons.org/licenses/by-sa/3.0/us/>).