__PACKAGE__->mk_classdata($_) for qw/_config log/;
-our $VERSION = '4.13';
+our $VERSION = '4.31';
our @ISA;
=head1 NAME
=head1 SYNOPSIS
# use the helper to start a new application
- catalyst MyApp
+ catalyst.pl MyApp
cd MyApp
# add models, views, controllers
- perl bin/create model Something
- perl bin/create view Stuff
- perl bin/create controller Yada
+ script/create.pl model Something
+ script/create.pl view Stuff
+ script/create.pl controller Yada
# built in testserver
- perl bin/server
+ script/server.pl
# command line interface
- perl bin/test /yada
-
-
- See also L<Catalyst::Manual::Intro>
+ script/test.pl /yada
use Catalyst;
}
);
+See also L<Catalyst::Manual::Intro>
+
=head1 DESCRIPTION
Catalyst is based upon L<Maypole>, which you should consider for smaller
See L<Catalyst::Manual> for more documentation.
-Omit the Catalyst::Plugin:: prefix from plugins.
-So Catalyst::Plugin::My::Module becomes My::Module.
+Catalyst plugins can be loaded by naming them as arguments to the "use Catalyst" statement.
+Omit the C<Catalyst::Plugin::> prefix from the plugin name,
+so C<Catalyst::Plugin::My::Module> becomes C<My::Module>.
use Catalyst 'My::Module';
-You can also set special flags like -Debug and -Engine.
+Special flags like -Debug and -Engine can also be specifed as arguments when
+Catalyst is loaded:
use Catalyst qw/-Debug My::Module/;
-The position of plugins and flags in the chain is important,
-because they are loaded in the same order they appear.
+The position of plugins and flags in the chain is important, because they are
+loaded in exactly the order that they appear.
+
+The following flags are supported:
+
+=over 4
-=head2 -Debug
+=item -Debug
+
+enables debug output, i.e.:
use Catalyst '-Debug';
-is equivalent to
+this is equivalent to:
use Catalyst;
sub debug { 1 }
-=head2 -Engine
+=item -Engine
Force Catalyst to use a specific engine.
-Omit the Catalyst::Engine:: prefix.
+Omit the C<Catalyst::Engine::> prefix of the engine name, i.e.:
use Catalyst '-Engine=CGI';
-=head2 METHODS
+=back
+
+=head1 METHODS
+
+=over 4
-=head3 debug
+=item debug
Overload to enable debug messages.
sub debug { 0 }
-=head3 config
+=item config
Returns a hashref containing your applications settings.
no strict 'refs';
*{"$caller\::handler"} =
sub { Catalyst::Engine::handler( $caller, @_ ) };
- push @{"$caller\::ISA"}, $self;
+
+ unless ( $caller->isa($self) ) {
+ push @{"$caller\::ISA"}, $self;
+ }
+ }
+
+ unless ( $self->log ) {
+ $self->log( Catalyst::Log->new );
}
- $self->log( Catalyst::Log->new );
# Options
my $engine =
if (/^\-Debug$/) {
no warnings;
no strict 'refs';
- *{"$self\::debug"} = sub { 1 };
+ *{"$caller\::debug"} = sub { 1 };
$caller->log->debug('Debug messages enabled');
}
elsif (/^-Engine=(.*)$/) { $engine = "Catalyst::Engine::$1" }
else {
$caller->log->debug(qq/Loaded plugin "$plugin"/)
if $caller->debug;
- unshift @ISA, $plugin;
+ no strict 'refs';
+ push @{"$caller\::ISA"}, $plugin;
}
}
}
if $ENV{CATALYST_ENGINE};
$engine->require;
die qq/Couldn't load engine "$engine", "$@"/ if $@;
- push @ISA, $engine;
+ {
+ no strict 'refs';
+ push @{"$caller\::ISA"}, $engine;
+ }
$caller->log->debug(qq/Loaded engine "$engine"/) if $caller->debug;
}
+=back
+
+=head1 SUPPORT
+
+IRC:
+
+ Join #catalyst on irc.perl.org.
+
+Mailing-Lists:
+
+ http://lists.rawmode.org/mailman/listinfo/catalyst
+ http://lists.rawmode.org/mailman/listinfo/catalyst-dev
+
=head1 SEE ALSO
L<Catalyst::Manual>, L<Catalyst::Test>, L<Catalyst::Request>,
=head1 THANK YOU
+Andrew Ford, Andrew Ruthven, Christian Hansen, Christopher Hicks,
Danijel Milicevic, David Naughton, Gary Ashton Jones, Jesse Sheidlower,
-Johan Lindstrom, Marcus Ramberg and all the others who've helped.
+Johan Lindstrom, Marcus Ramberg, Tatsuhiko Miyagawa and all the others
+who've helped.
=head1 LICENSE