From: Jesse Sheidlower Date: Thu, 7 Jul 2005 02:06:17 +0000 (+0000) Subject: Cookbook doc adds (thanks chisel!) X-Git-Tag: 5.7099_04~1266 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=822fe9544767709e6d75eda2b0cbcfb46bb494dd;p=catagits%2FCatalyst-Runtime.git Cookbook doc adds (thanks chisel!) --- diff --git a/lib/Catalyst/Manual/Cookbook.pod b/lib/Catalyst/Manual/Cookbook.pod index 820f5f8..07e9794 100644 --- a/lib/Catalyst/Manual/Cookbook.pod +++ b/lib/Catalyst/Manual/Cookbook.pod @@ -80,7 +80,9 @@ B from the CPAN shell to find them. Other Scaffolding modules are in development at the time of writing. -=head2 Single file upload with Catalyst +=head2 File uploads + +=head3 Single file upload with Catalyst To implement uploads in Catalyst you need to have a HTML form similiar to this: @@ -115,7 +117,7 @@ Catalyst Controller module 'upload' action: $c->stash->{template} = 'file_upload.html'; } -=head2 Multiple file upload with Catalyst +=head3 Multiple file upload with Catalyst Code for uploading multiple files from one form needs a few changes: @@ -317,7 +319,7 @@ However sometimes mod_perl is not an option, and running under CGI is just too slow. There's also an alternative to mod_perl that gives reasonable performance named FastCGI. -B +=head3 Using FastCGI To quote from L: "FastCGI is a language independent, scalable, extension to CGI that provides high performance @@ -520,14 +522,82 @@ the Catalyst Request object: (See L for more information on passing arguments via C.) +=head2 Configure your application + +You configure your application with the C method in your +application class. This can be hard-coded, or brought in from a +separate configuration file. + +=head3 Using YAML + +YAML is a method for creating flexible and readable configuration +files. It's a great way to keep your Catalyst application configuration +in one easy-to-understand location. + +In your application class (e.g. C): + + use YAML; + # application setup + __PACKAGE__->config( YAML::LoadFile(__PACKAGE__->config->{'home'} . '/myapp.yml') ); + __PACKAGE__->setup; + +Now create C in your application home: + + --- #YAML:1.0 + # DO NOT USE TABS FOR INDENTATION OR label/value SEPARATION!!! + name: MyApp + + # authentication; perldoc Catalyst::Plugin::Authentication::CDBI + authentication: + user_class: 'MyApp::M::MyDB::Customer' + user_field: 'username' + password_field: 'password' + password_hash: 'md5' + role_class: 'MyApp::M::MyDB::Role' + user_role_class: 'MyApp::M::MyDB::PersonRole' + user_role_user_field: 'person' + + # session; perldoc Catalyst::Plugin::Session::FastMmap + session: + expires: '3600' + rewrite: '0' + storage: '/tmp/myapp.session' + + # emails; perldoc Catalyst::Plugin::Email + # this passes options as an array :( + email: + - SMTP + - localhost + +This is equivalent to: + + # configure base package + __PACKAGE__->config( name => MyApp ); + # configure authentication + __PACKAGE__->config->{authentication} = { + user_class => 'MyApp::M::MyDB::Customer', + ... + }; + # configure sessions + __PACKAGE__->config->{session} = { + expires => 3600, + ... + }; + # configure email sending + __PACKAGE__->config->{email} = [qw/SMTP localhost/]; + +See also L. + =head1 AUTHOR Sebastian Riedel, C Danijel Milicevic, C Viljo Marrandi, C -Marcus Ramberg, C +Marcus Ramberg, C +Jesse Sheidlower, C Andy Grundman, C Marcus Ramberg C +Chisel Wright C =head1 COPYRIGHT