=head1 NAME Catalyst::Manual::Plugins - Catalyst Plugins (and Components) =head1 DESCRIPTION This section lists the some of the plugins and components that are available to extend the runtime functionality of Catalyst. Most plugins are not distributed with Catalyst but should be available from CPAN. They typically require additional modules from CPAN. This list is almost certainly outdated by the time you read this and some plugins may even be deprecated or now part of core L. Be sure to check the Catalyst::Plugin namespace for additional plugins and consult the mailing list ( L ) for advice on the current status or preferred use of your chosen plugin/framework. =head1 PLUGINS =head2 Catalyst::Plugin::Account::AutoDiscovery L provides Account Auto-Discovery for Catalyst. =head2 Catalyst::Plugin::Acme::Scramble L 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. =head2 Catalyst::Plugin::AtomPP L allows you to dispatch AtomPP methods. =head2 Catalyst::Plugin::AtomServer L is a plugin that implements the necessary bits to make it easy to build an Atom API server for any Catalyst-based application. =head2 Catalyst::Plugin::Authentication L is a infrastructure plugin for the Catalyst authentication framework. Now the recommended way to do any form of Authentication. =head2 Catalyst::Plugin::Authentication::Basic::Remote L is a authentication plugin that allows you to use a remote host's Basic authentication. =head2 Catalyst::Plugin::Authentication::CDBI L is a CDBI (C) authentication plugin. Note that it requires a session plugin. =head2 Catalyst::Plugin::Authentication::CDBI::Basic L provides Basic Authorization for Catalyst. Replaced by L =head2 Catalyst::Plugin::Authentication::Credential::Atom L is a plugin which implements WSSE and Basic authentication for Catalyst applications using L =head2 Catalyst::Plugin::Authentication::Credential::Flickr L is a plugin which provides authentication via Flickr, using it's API =head2 Catalyst::Plugin::Authentication::Credential::HTTP L is a plugin that lets you do HTTP Basic authentication for Catalyst. =head2 Catalyst::Plugin::Authentication::Credential::Password L takes a username (or userid) and a password, and tries various methods of comparing a password based on what the chosen store's user objects support. Part of the Authentication Framework =head2 Catalyst::Plugin::Authentication::Credential::TypeKey L integrates L with L =head2 Catalyst::Plugin::Authentication::LDAP L is a plugin allowing you to authenticate your web users using an LDAP server. Replaced by L =head2 Catalyst::Plugin::Authentication::OpenID L is a plugin that implements support for OpenID authentication. For more information on OpenID, take a look at L. =head2 Catalyst::Plugin::Authentication::Simple Replaced by new L framework =head2 Catalyst::Plugin::Authentication::Store L is the core store documentation =head2 Catalyst::Plugin::Authentication::Store::DBIC L is a plugin that lets you do authentication and authorization against a DBIx::Class or Class::DBI model. =head2 Catalyst::Plugin::Authentication::Store::Htpasswd L uses L to let your application use C<.htpasswd> files for it's authentication storage. =head2 Catalyst::Plugin::Authentication::Store::LDAP L the new LDAP store. Use this instead of L =head2 Catalyst::Plugin::Authentication::Store::Minimal L lets you create a very quick and dirty user database in your application's config hash. Great for getting up and running quickly. =head2 Catalyst::Plugin::Authentication::User::Hash L is an easy authentication user object based on hashes. See L for more info. =head2 Catalyst::Plugin::Authorization::ACL L This module provides Access Control List style path protection, with arbitrary rules for L applications. It operates only on the Catalyst private namespace, at least at the moment. =head2 Catalyst::Plugin::Authorization::CDBI::GroupToken No longer on the CPAN =head2 Catalyst::Plugin::Authorization::Roles L provides role based authorization for Catalyst based on L. =head2 Catalyst::Plugin::Browser L extends L by adding the capability of browser detection. It returns an instance of L, which lets you get information from the client's user agent. =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached L, L, and L all provide a cache method enabling easy access to a shared cache. =head2 Catalyst::Plugin::CDBI::Transaction =head2 Catalyst::Plugin::Charsets::Japanese =head2 Catalyst::Plugin::Compress::Bzip2 L compresses a response using bzip compression. =head2 Catalyst::Plugin::Compress::Deflate =head2 Catalyst::Plugin::Compress::Gzip =head2 Catalyst::Plugin::Compress::Zlib L supplies Zlib compression for Catalyst. =head2 Catalyst::Plugin::Config::JSON =head2 Catalyst::Plugin::ConfigLoader =head2 Catalyst::Plugin::ConfigLoader::INI =head2 Catalyst::Plugin::ConfigLoader::JSON =head2 Catalyst::Plugin::ConfigLoader::Perl =head2 Catalyst::Plugin::ConfigLoader::XML =head2 Catalyst::Plugin::ConfigLoader::YAML =head2 Catalyst::Plugin::Config::YAML =head2 Catalyst::Plugin::DateTime =head2 Catalyst::Plugin::DefaultEnd L creates a sane, standard end method for your application. =head2 Catalyst::Plugin::Devel::InPageLogs =head2 Catalyst::Plugin::Devel::InPageLogs::Log =head2 Catalyst::Plugin::Dumper =head2 Catalyst::Plugin::Email L sends email with Catalyst and L and L. =head2 Catalyst::Plugin::Email::Japanese =head2 Catalyst::Plugin::Email::Page =head2 Catalyst::Plugin::EmailValid =head2 Catalyst::Plugin::FillInForm L is plugin for Catalyst based on C, which describes itself as a module to automatically insert data from a previous HTML form into the HTML input, textarea, radio buttons, checkboxes, and select tags. C is a subclass of C and uses it to parse the HTML and insert the values into the form tags. =head2 Catalyst::Plugin::Flavour =head2 Catalyst::Plugin::FormValidator L is a form validator plugin that uses L to validate and set up form data from your request parameters. It's a quite thin wrapper around that module, so most of the relevant information can be found there. =head2 Catalyst::Plugin::FormValidator::Simple =head2 Catalyst::Plugin::Geography L allows you to retrieve various kinds of geographical information. You can retrieve the country or code from the current user, from a given IP address, or from a given hostname. =head2 Catalyst::Plugin::Geography::Implementation =head2 Catalyst::Plugin::HashedCookies =head2 Catalyst::Plugin::HTML::Scrubber =head2 Catalyst::Plugin::HTML::Widget =head2 Catalyst::Plugin::I18N L is an internationalization plugin for Catalyst. Supports C/C files and Maketext classes under your application's I18N namespace. =head2 Catalyst::Plugin::JSONRPC =head2 Catalyst::Plugin::Message =head2 Catalyst::Plugin::MobileAgent =head2 Catalyst::Plugin::Observe L provides the ability to register AOP-like callbacks to specific Engine events. Subclasses L. =head2 Catalyst::Plugin::OrderedParams L adjusts the way that parameters operate, causing them to appear in the same order they were submitted by the browser. This can be useful for creating things such as email forms. =head2 Catalyst::Plugin::PageCache L helps improve the performance of slow or frequently accessed pages by caching the entire output of your page. Subsequent requests to the page will receive the page very quickly from cache. =head2 Catalyst::Plugin::Params::Nested =head2 Catalyst::Plugin::Params::Nested::Expander =head2 Catalyst::Plugin::Pluggable L is a plugin for pluggable Catalyst applications. =head2 Catalyst::Plugin::Prototype L is a plugin for the Prototype JavaScript library. This Plugin allows you to easily implement AJAX functionality without actually knowing Javascript. =head2 Catalyst::Plugin::Redirect =head2 Catalyst::Plugin::RequestToken =head2 Catalyst::Plugin::RequireSSL Use L if you would like to force visitors to access certain pages using only SSL mode. An attempt to access the page in non-SSL mode will receive a redirect into SSL mode. Useful for login pages, shopping carts, user registration forms, and other sensitive data. =head2 Catalyst::Plugin::SanitizeUrl =head2 Catalyst::Plugin::SanitizeUrl::PrepAction =head2 Catalyst::Plugin::Scheduler =head2 Catalyst::Plugin::Session The L series of modules provide an easy way to include session handling in an application. You can choose from several different backend storage methods and combine that with your choice of client-side storage methods. =head2 Catalyst::Plugin::Session::CGISession =head2 Catalyst::Plugin::Session::FastMmap L is a session plugin for Catalyst based on C, which uses an mmap'ed file to act as a shared memory interprocess cache. This is an older session plugin; you may wish to look at L instead. =head2 Catalyst::Plugin::Session::Flex =head2 Catalyst::Plugin::Session::Manager =head2 Catalyst::Plugin::Session::Manager::Client::Cookie =head2 Catalyst::Plugin::Session::Manager::Client::Rewrite =head2 Catalyst::Plugin::Session::Manager::Client::StickyQuery =head2 Catalyst::Plugin::Session::Manager::Storage::CDBI =head2 Catalyst::Plugin::Session::Manager::Storage::FastMmap =head2 Catalyst::Plugin::Session::Manager::Storage::File =head2 Catalyst::Plugin::Session::PerUser =head2 Catalyst::Plugin::Session::State =head2 Catalyst::Plugin::Session::State::Cookie =head2 Catalyst::Plugin::Session::State::URI =head2 Catalyst::Plugin::Session::Store =head2 Catalyst::Plugin::Session::Store::CDBI =head2 Catalyst::Plugin::Session::Store::DBI =head2 Catalyst::Plugin::Session::Store::Dummy =head2 Catalyst::Plugin::Session::Store::FastMmap =head2 Catalyst::Plugin::Session::Store::File =head2 Catalyst::Plugin::Session::Store::Memcached =head2 Catalyst::Plugin::Session::Test::Store =head2 Catalyst::Plugin::Singleton =head2 Catalyst::Plugin::SRU L allows your controller class to dispatch SRU actions (C, C, and C) from its own class. =head2 Catalyst::Plugin::StackTrace =head2 Catalyst::Plugin::Static L is a plugin to serve static files from C<$c-Econfig-E{root}>. Intended chiefly for development purposes. =head2 Catalyst::Plugin::Static::Simple L serves static files in your application without requiring a single line of code. This plugin is now included in the core Catalyst distribution. =head2 Catalyst::Plugin::SubRequest L is a plugin to allow subrequests to actions to be made within Catalyst. Nice for portal software and such. =head2 Catalyst::Plugin::SuperForm L is an interface to the L module, enabling easy HTML form creation. =head2 Catalyst::Plugin::Textile L is a persistent Textile processor for Catalyst that uses C, a Perl-based implementation of Dean Allen's Textile syntax. Textile is shorthand for doing common formatting tasks (see L). =head2 Catalyst::Plugin::Unicode L 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 Catalyst::Plugin::Unicode::Encoding =head2 Catalyst::Plugin::Upload::Basename =head2 Catalyst::Plugin::Upload::MD5 =head2 Catalyst::Plugin::Upload::MIME =head2 Catalyst::Plugin::XMLRPC L plugin allows your Controller class to dispatch XMLRPC methods from its own class. =head1 COMPONENT MODULES =head2 Catalyst::Model::CDBI L is the C (CDBI) module class. It is built on top of C, which automates the definition of C sub-classes by scanning the underlying table schemas, setting up columns and primary keys. =head2 Catalyst::Model::CDBI::Plain L is a neutral interface to the C module, which does not attempt to automate table setup. It allows the user to manually set up C classes, either by doing so within the Catalyst model classes themselves, or by inheriting from existing C classes. =head2 Catalyst::Model::DBIC L is a L model class built on top of L. =head2 Catalyst::Model::Plucene L is a model class for the Plucene search engine. =head2 Catalyst::Model::Xapian L is a model class for the Xapian search engine. =head2 Catalyst::View::HTML::Template L is a View component for displaying your stash with L. =head2 Catalyst::View::Mason L is a View component for displaying your stash with L. =head2 Catalyst::View::PSP L is a View component for displaying your stash using PSP, a Perl extension implementing a JSP-like templating system; see L. =head2 Catalyst::View::Petal L is a View component for displaying your stash using Petal, the Perl Template Attribute Language, an XML-based templating system; see L. =head2 Catalyst::View::TT L is a Template Toolkit view. See L. =head1 AUTHORS Andrew Ford EA.Ford@ford-mason.co.ukE Gavin Henry Eghenry@suretecsystems.comE Jesse Sheidlower Ejester@panix.comE Marcus Ramberg Emramberg@cpan.orgE =head1 COPYRIGHT This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.