some small changes to Components.
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Components.pod
index 295733b..cc45a80 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-Catalyst::Manual::Component - Reuseable components for Catalyst applications.
+Catalyst::Manual::Components - Reuseable components for Catalyst applications
 
 =head1 DESCRIPTION
 
@@ -9,24 +9,29 @@ available to extend the runtime functionality of Catalyst. Most components
 are not distributed with Catalyst but should be available from CPAN.
 They typically require additional modules from CPAN.
 
-This list may well be outdated by the time you read this and some
-plugins may be deprecated or now part of core L<Catalyst>. Be sure to
-check the Catalyst:: and CatalystX:: namespaces for additional components and consult
-the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for
-advice on the current status or preferred use of your chosen
-plugin/framework.
+This list may well be outdated by the time you read this, and some
+plugins may be deprecated, or, conversely, may now part of core
+L<Catalyst>. Be sure to check the Catalyst:: and CatalystX:: namespaces
+for additional components, and consult the mailing list (
+L<http://dev.catalyst.perl.org/wiki/Support> ) for advice on the current
+status or preferred use of your chosen plugin/framework.
 
 =head1 PLUGINS
 
+Take care with plugins!  In general with a plugin ask "should this be
+acting globally on my application application?".  If not it should be a
+Controller Role (e.g. see L<Catalyst::TraitFor::Controller::reCAPTCHA>.
+
 =head2 L<Catalyst::Plugin::Account::AutoDiscovery>
 
 Provides Account Auto-Discovery for Catalyst.
 
 =head2 L<Catalyst::Plugin::Acme::Scramble>
 
-Implements a potent meme about how easily we can read scrambled text if
-the first and last letters remain constant. Operates on text/plain and
-text/html served by your Catalyst application.
+Implements a demonstration showing how easily fluent speakers can read
+scrambled text if the first and last letters remain constant but the middle
+. Operates on text/plain and text/html served by your Catalyst application.
+This should really be a controller role, or even a View these days.
 
 =head2 L<Catalyst::Plugin::Alarm>
 
@@ -52,8 +57,8 @@ This, however, has involved deprecated all classes in the
 C<Catalyst::Plugin::Authentication::Credential::XXX> and
 C<Catalyst::Plugin::Authentication::Store::XXX> namespaces.
 
-These plugins are still useable, however they have mostly been
-replaced with new modules in the new namespace which will work together.
+These plugins are still usable, but they have mostly been replaced with
+new modules in the new namespace which will work together.
 
 =head3 Available Credential modules:
 
@@ -63,7 +68,7 @@ Allows you to use the L<Apache::AuthTkt> module with Catalyst.
 
 =head4 L<Catalyst::Authentication::Credential::FBConnect>
 
-Allows you to authenticate facebook users using the FBConnect API.
+Allows you to authenticate Facebook users using the FBConnect API.
 
 =head4 L<Catalyst::Authentication::Credential::Flickr>
 
@@ -84,13 +89,13 @@ Allows you to authenticate your users against a Kerberos server.
 
 =head4 L<Catalyst::Authentication::Credential::OAuth>
 
-Allows you to authenticate users using their login on other websites supporting
-the OAuth protocol.
+Allows you to authenticate users using their login on other websites
+supporting the OAuth protocol.
 
 =head4 L<Catalyst::Authentication::Credential::OpenID>
 
-Allows you to authenticate users using their login on other websites supporting
-the OpenID protocol.
+Allows you to authenticate users using their login on other websites
+supporting the OpenID protocol.
 
 =head4 L<Catalyst::Authentication::Credential::Password>
 
@@ -100,28 +105,28 @@ Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
 
 =head4 L<Catalyst::Authentication::Credential::RPX>
 
-Allows you to autheticate users using the RPX protocol.
+Allows you to authenticate users using the RPX protocol.
 
 =head4 L<Catalyst::Authentication::Credential::Remote>
 
-Allows you to authenticate users in Catalyst which have already been
-authenticated by your web server - this is useful for authenticating
+Allows you to authenticate users in Catalyst that have already been
+authenticated by your web server. This is useful for authenticating
 users with SSL Client certificates, and using NTLM or any other
 authentication protocol natively supported by your web server.
 
 =head4 L<Catalyst::Authentication::Credential::Testing>
 
-Allows you to set the same password for all users, which is useful
-when you want to test logging in as multiple users / types of user,
-without having to mock things, or set all users passwords in your
-test suite.
+Allows you to set the same password for all users, which is useful when
+you want to test logging in as multiple users or multiple types of user,
+without having to mock things, or set all users' passwords in your test
+suite.
 
 =head4 L<Catalyst::Authentication::Credential::Authen::Simple>
 
 Allows any of the L<Authen::Simple> family of modules to be used
 to authenticate users in Catalyst.
 
-=head3 LAvailable Store modules:
+=head3 Available Store modules:
 
 =head4 L<Catalyst::Authentication::Store::DBIx::Class>
 
@@ -129,8 +134,8 @@ Does authentication and authorization against a L<DBIx::Class> model.
 
 =head4 L<Catalyst::Authentication::Store::Htpasswd>
 
-Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
-authentication storage.
+Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files
+for its authentication storage.
 
 =head4 L<Catalyst::Authentication::Store::AuthTkt>
 
@@ -142,12 +147,12 @@ Allows you to use a plain L<DBI> database connection to identify users.
 
 =head4 L<Catalyst::Authentication::Store::Htpasswd>
 
-Allows you to use an apache htpassed type file to authenticate users from.
+Allows you to use an Apache htpasswd type file to authenticate users.
 
 =head4 L<Catalyst::Authentication::Store::KiokuDB>
 
-Authenticate users stored as objects in the L<KiokuDB> object graph storage
-engine system.
+Authenticate users stored as objects in the L<KiokuDB> object graph
+storage engine system.
 
 =head4 L<Catalyst::Authentication::Store::LDAP>
 
@@ -156,13 +161,13 @@ Authenticates users using an LDAP server.
 =head4 L<Catalyst::Authentication::Store::Minimal>
 
 Lets you create a very quick and dirty user database in your application's
-config hash. Great for getting up and running quickly.
+config hash. Great for testing or getting up and running quickly.
 
 =head4 L<Catalyst::Authentication::Store::Null>
 
-The Null store is a transparent store where any supplied user data is accepted.
-This is mainly useful for remotely authenticating credentials (e.g. OpenID) which
-may not be tied to any local storage.
+The Null store is a transparent store where any supplied user data is
+accepted.  This is mainly useful for remotely authenticating credentials
+(e.g. OpenID) which may not be tied to any local storage.
 
 =head4 L<Catalyst::Authentication::Store::RDBO>
 
@@ -170,11 +175,13 @@ Allows access to authentication information stored in a database via a L<Rose::D
 
 =head4 L<Catalyst::Authentication::Store::Tangram>
 
-Allows access to authentication information stored in a database via a L<Tangram> class.
+Allows access to authentication information stored in a database via a
+L<Tangram> class.
 
 =head4 L<Catalyst::Authentication::Store::DBIx::Class>
 
-Allows access to authentication information stored in a database via a L<DBIx::Class> class.
+Allows access to authentication information stored in a database via a
+L<DBIx::Class> class.
 
 =head4 L<Catalyst::Authentication::Store::Jifty::DBI>
 
@@ -193,11 +200,14 @@ namespace, at least at the moment.
 
 =head2 L<Catalyst::Plugin::Authorization::Roles>
 
-L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
-for Catalyst based on L<Catalyst::Plugin::Authentication>.
+L<Catalyst::Plugin::Authorization::Roles> provides role-based
+authorization for Catalyst based on L<Catalyst::Plugin::Authentication>.
 
 =head2 L<Catalyst::Plugin::AutoSession>
 
+L<Catalyst::Plugin::AutoSession> enables specified request parameters
+to generate session variables.
+
 =head2 L<Catalyst::Plugin::Browser>
 
 Extends L<Catalyst::Request> by adding the capability of browser
@@ -227,6 +237,8 @@ the C<< Cache:: >> APO, such as:
 
 =head2 L<Catalyst::Plugin::Charsets::Japanese>
 
+Provides specific charset handlers for the Japanese charsets.
+
 =head2 L<Catalyst::Plugin::Compress::Bzip2>
 
 =head2 L<Catalyst::Plugin::Compress::Deflate>
@@ -256,16 +268,10 @@ L<Catalyst::Plugin::ConfigLoader::YAML>
 
 =head2 L<Catalyst::Plugin::Dumper>
 
-=head2 L<Catalyst::Plugin::Email>
-
-Sends email with L<Email::Send> and L<Email::MIME::Creator>.
-
 =head2 L<Catalyst::Plugin::Email::Japanese>
 
 =head2 L<Catalyst::Plugin::Email::Page>
 
-=head2 L<Catalyst::Plugin::EmailValid>
-
 =head2 L<Catalyst::Plugin::FillInForm>
 
 A plugin based on C<HTML::FillInForm>, which describes itself as a module
@@ -326,11 +332,13 @@ A plugin for pluggable Catalyst applications.
 
 =head2 L<Catalyst::Plugin::Prototype>
 
-A plugin for the Prototype JavaScript library. This Plugin allows you to
+A plugin for the Prototype JavaScript library. This plugin allows you to
 easily implement AJAX functionality without actually knowing Javascript.
 
 =head2 L<Catalyst::Plugin::Redirect>
 
+Allows for easy redirecting with the Catalyst app.
+
 =head2 L<Catalyst::Plugin::RequestToken>
 
 =head2 L<Catalyst::Plugin::RequireSSL>
@@ -407,18 +415,24 @@ for portal software and such.
 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
 creation.
 
-=head2 L<Catalyst::Plugin::Unicode>
+=head2 L<Catalyst::Plugin::Unicode::Encoding>
 
 Provides a Unicode-aware Catalyst. On request, it decodes all params from
 UTF-8 octets into a sequence of logical characters. On response, it encodes
 the body into UTF-8 octets.
 
-=head2 L<Catalyst::Plugin::Unicode::Encoding>
+=head2 L<Catalyst::Plugin::Unicode>
+
+Disrecommended plugin which tries to autodetect the uft8ness of the output
+and do the correct thing. This may work in some cases, but if it helps,
+you've already painted yourself into a corner - try to avoid!
 
 =head2 L<Catalyst::Plugin::Upload::Basename>
 
 =head2 L<Catalyst::Plugin::Upload::MD5>
 
+Computes the MD5 message digest of uploaded files.
+
 =head2 L<Catalyst::Plugin::Upload::MIME>
 
 =head2 L<Catalyst::Plugin::UploadProgress>