# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.7006';
+our $VERSION = '5.7007';
sub import {
my ( $class, @arguments ) = @_;
=head1 SYNOPSIS
+See the L<Catalyst::Manual> distribution for comprehensive
+documentation and tutorials.
+
# Install Catalyst::Devel for helpers and other development tools
# use the helper to create a new application
catalyst.pl MyApp
# add models, views, controllers
- script/myapp_create.pl model Database DBIC::SchemaLoader dbi:SQLite:/path/to/db
- script/myapp_create.pl view TT TT
+ script/myapp_create.pl model MyDatabase DBIC::Schema create=dynamic dbi:SQLite:/path/to/db
+ script/myapp_create.pl view MyTemplate TT
script/myapp_create.pl controller Search
# built in testserver -- use -r to restart automatically on changes
+ # --help to see all available options
script/myapp_server.pl
# command line testing interface
use Catalyst qw[-Home=/usr/mst];
+This can also be done in the shell environment by setting either the
+C<CATALYST_HOME> environment variable or C<MYAPP_HOME>; where C<MYAPP>
+is replaced with the uppercased name of your application, any "::" in
+the name will be replaced with underscores, e.g. MyApp::Web should use
+MYAPP_WEB_HOME. If both variables are set, the MYAPP_HOME one will be used.
+
=head2 -Log
Specifies log level.
Forwards processing to another action, by its private name. If you give a
class name but no method, C<process()> is called. You may also optionally
pass arguments in an arrayref. The action will receive the arguments in
-C<@_> and C<$c-E<gt>req-E<gt>args>. Upon returning from the function,
-C<$c-E<gt>req-E<gt>args> will be restored to the previous values.
+C<@_> and C<< $c->req->args >>. Upon returning from the function,
+C<< $c->req->args >> will be restored to the previous values.
Any data C<return>ed from the action forwarded to, will be returned by the
call to forward.
=head2 $c->res
-Returns the current L<Catalyst::Response> object, q.v.
+Returns the current L<Catalyst::Response> object, see there for details.
=head2 $c->stash
$c->stash( bar => 1, gorch => 2 ); # equivalent to passing a hashref
# stash is automatically passed to the view for use in a template
- $c->forward( 'MyApp::V::TT' );
+ $c->forward( 'MyApp::View::TT' );
=cut
Returns an arrayref containing error messages. If Catalyst encounters an
error while processing a request, it stores the error in $c->error. This
-method should not be used to store non-fatal error messages.
+method should only be used to store fatal error messages.
my @error = @{ $c->error };
$c->model('Foo')->do_stuff;
+Any extra arguments are directly passed to ACCEPT_CONTEXT.
+
If the name is omitted, it will look for
- a model object in $c->stash{current_model_instance}, then
- a model name in $c->stash->{current_model}, then
if $c->stash->{current_model_instance};
return $c->model( $c->stash->{current_model} )
if $c->stash->{current_model};
- return $c->model( $c->config->{default_model} )
- if $c->config->{default_model};
}
- return $c->_filter_component( $c->_comp_singular(qw/Model M/), @args );
+ return $c->model( $c->config->{default_model} )
+ if $c->config->{default_model};
+ return $c->_filter_component( $c->_comp_singular(qw/Model M/) );
}
$c->view('Foo')->do_stuff;
+Any extra arguments are directly passed to ACCEPT_CONTEXT.
+
If the name is omitted, it will look for
- a view object in $c->stash{current_view_instance}, then
- a view name in $c->stash->{current_view}, then
if $c->stash->{current_view_instance};
return $c->view( $c->stash->{current_view} )
if $c->stash->{current_view};
- return $c->view( $c->config->{default_view} )
- if $c->config->{default_view};
}
+ return $c->view( $c->config->{default_view} )
+ if $c->config->{default_view};
return $c->_filter_component( $c->_comp_singular(qw/View V/) );
}
=head2 $c->component($name)
-Gets a component object by name. This method is no longer recommended,
+Gets a component object by name. This method is not recommended,
unless you want to get a specific component by full
-class. C<$c-E<gt>controller>, C<$c-E<gt>model>, and C<$c-E<gt>view>
+class. C<< $c->controller >>, C<< $c->model >>, and C<< $c->view >>
should be used instead.
=cut
__PACKAGE__->config( { db => 'dsn:SQLite:foo.db' } );
-You can also use a L<YAML> config file like myapp.yml in your
-applications home directory.
+You can also use a C<YAML>, C<XML> or C<Config::General> config file
+like myapp.yml in your applications home directory. See
+L<Catalyst::Plugin::ConfigLoader>.
---
db: dsn:SQLite:foo.db
=head2 $c->path_to(@path)
-Merges C<@path> with C<$c-E<gt>config-E<gt>{home}> and returns a
-L<Path::Class> object.
+Merges C<@path> with C<< $c->config->{home} >> and returns a
+L<Path::Class::Dir> object.
For example:
if ( my $location = $c->response->redirect ) {
$c->log->debug(qq/Redirecting to "$location"/) if $c->debug;
$c->response->header( Location => $location );
+
+ if ( !$c->response->body ) {
+ # Add a default body if none is already present
+ $c->response->body(
+ "<p>This item has moved <a href=\"$location\">here</a>.</p>"
+ );
+ }
}
# Content-Length
be used in a while loop, reading C<$maxlength> bytes on every call.
C<$maxlength> defaults to the size of the request if not specified.
-You have to set C<MyApp-E<gt>config-E<gt>{parse_on_demand}> to use this
+You have to set C<< MyApp->config->{parse_on_demand} >> to use this
directly.
=cut
}
if ( $ENV{ uc($class) . '_HOME' } ) {
+ $class =~ s/::/_/g;
$home = $ENV{ uc($class) . '_HOME' };
}