3 Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
7 This section lists the some of the plugins and components that are
8 available to extend the runtime functionality of Catalyst. Most plugins
9 are not distributed with Catalyst but should be available from CPAN.
10 They typically require additional modules from CPAN.
12 This list is almost certainly outdated by the time you read this and some
13 plugins may even be deprecated or now part of core L<Catalyst>. Be sure
14 to check the Catalyst::Plugin namespace for additional plugins and consult
15 the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for advice
16 on the current status or preferred use of your chosen plugin/framework.
20 =head2 Catalyst::Plugin::Account::AutoDiscovery
22 L<Catalyst::Plugin::Account::AutoDiscovery> provides Account Auto-Discovery
25 =head2 Catalyst::Plugin::Acme::Scramble
27 L<Catalyst::Plugin::Acme::Scramble> Implements a potent meme about how easily
28 we can read scrambled text if the first and last letters remain constant.
29 Operates on text/plain and text/html served by your Catalyst application.
31 =head2 Catalyst::Plugin::AtomPP
33 L<Catalyst::Plugin::AtomPP> allows you to dispatch AtomPP methods.
35 =head2 Catalyst::Plugin::AtomServer
37 L<Catalyst::Plugin::AtomServer> is a plugin that implements the necessary
38 bits to make it easy to build an Atom API server for any Catalyst-based
41 =head2 Catalyst::Plugin::Authentication
43 L<Catalyst::Plugin::Authentication> is a infrastructure plugin for the
44 Catalyst authentication framework. Now the recommended way to do any form
47 =head2 Catalyst::Plugin::Authentication::Basic::Remote
49 L<Catalyst::Plugin::Authentication::Basic::Remote> is a authentication plugin
50 that allows you to use a remote host's Basic authentication.
52 =head2 Catalyst::Plugin::Authentication::CDBI
54 L<Catalyst::Plugin::Authentication::CDBI> is a CDBI (C<Class::DBI>)
55 authentication plugin. Note that it requires a session plugin.
57 =head2 Catalyst::Plugin::Authentication::CDBI::Basic
59 L<Catalyst::Plugin::Authentication::CDBI::Basic> provides Basic Authorization
61 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>
63 =head2 Catalyst::Plugin::Authentication::Credential::Atom
65 L<Catalyst::Plugin::Authentication::Credential::Atom> is a plugin which
66 implements WSSE and Basic authentication for Catalyst applications using
67 L<Catalyst::Plugin::AtomServer>
69 =head2 Catalyst::Plugin::Authentication::Credential::Flickr
71 L<Catalyst::Plugin::Authentication::Credential::Flickr> is a plugin which
72 provides authentication via Flickr, using it's API
74 =head2 Catalyst::Plugin::Authentication::Credential::HTTP
76 L<Catalyst::Plugin::Authentication::Credential::HTTP> is a plugin that
77 lets you do HTTP Basic authentication for Catalyst.
79 =head2 Catalyst::Plugin::Authentication::Credential::Password
81 L<Catalyst::Plugin::Authentication::Credential::Password> takes a username
82 (or userid) and a password, and tries various methods of comparing a
83 password based on what the chosen store's user objects support.
84 Part of the Authentication Framework <Catalyst::Plugin::Authentication>
87 =head2 Catalyst::Plugin::Authentication::Credential::TypeKey
89 L<Catalyst::Plugin::Authentication::Credential::TypeKey> integrates
90 L<Authen::TypeKey> with L<Catalyst::Plugin::Authentication>
92 =head2 Catalyst::Plugin::Authentication::LDAP
94 L<Catalyst::Plugin::Authentication::LDAP> is a plugin allowing you
95 to authenticate your web users using an LDAP server. Replaced
96 by L<Catalyst::Plugin::Authentication::Store::LDAP>
98 =head2 Catalyst::Plugin::Authentication::OpenID
100 L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
101 support for OpenID authentication. For more information on OpenID, take
102 a look at L<http://www.openid.net/>.
104 =head2 Catalyst::Plugin::Authentication::Simple
106 Replaced by new L<Catalyst::Plugin::Authentication> framework
108 =head2 Catalyst::Plugin::Authentication::Store
110 L<Catalyst::Plugin::Authentication::Store> is the core store documentation
112 =head2 Catalyst::Plugin::Authentication::Store::DBIC
114 L<Catalyst::Plugin::Authentication::Store::DBIC> is a plugin that lets
115 you do authentication and authorization against a DBIx::Class or
118 =head2 Catalyst::Plugin::Authentication::Store::Htpasswd
120 L<Catalyst::Plugin::Authentication::Store::Htpasswd> uses L<Authen::Htpasswd>
121 to let your application use C<.htpasswd> files for it's
122 authentication storage.
124 =head2 Catalyst::Plugin::Authentication::Store::LDAP
126 L<Catalyst::Plugin::Authentication::Store::LDAP> the new LDAP store. Use this
127 instead of L<Catalyst::Plugin::Authentication::LDAP>
129 =head2 Catalyst::Plugin::Authentication::Store::Minimal
131 L<Catalyst::Plugin::Authentication::Store::Minimal> lets you create a very
132 quick and dirty user database in your application's config hash.
133 Great for getting up and running quickly.
135 =head2 Catalyst::Plugin::Authentication::User::Hash
137 L<Catalyst::Plugin::Authentication::User::Hash> is an easy authentication
138 user object based on hashes.
139 See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
141 =head2 Catalyst::Plugin::Authorization::ACL
143 L<Catalyst::Plugin::Authorization::ACL> This module provides Access Control
144 List style path protection, with arbitrary rules for L<Catalyst> applications.
145 It operates only on the Catalyst private namespace, at least at the moment.
147 =head2 Catalyst::Plugin::Authorization::CDBI::GroupToken
149 No longer on the CPAN
151 =head2 Catalyst::Plugin::Authorization::Roles
153 L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
154 for Catalyst based on L<Catalyst::Plugin::Authentication>.
156 =head2 Catalyst::Plugin::Browser
158 L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
159 capability of browser detection. It returns an instance of
160 L<HTTP::BrowserDetect>, which lets you get information from the client's
163 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
165 L<Catalyst::Plugin::Cache::FastMmap>,
166 L<Catalyst::Plugin::Cache::FileCache>, and
167 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
168 enabling easy access to a shared cache.
170 =head2 Catalyst::Plugin::CDBI::Transaction
173 =head2 Catalyst::Plugin::Charsets::Japanese
176 =head2 Catalyst::Plugin::Compress::Bzip2
178 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
181 =head2 Catalyst::Plugin::Compress::Deflate
184 =head2 Catalyst::Plugin::Compress::Gzip
187 =head2 Catalyst::Plugin::Compress::Zlib
189 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
192 =head2 Catalyst::Plugin::Config::JSON
195 =head2 Catalyst::Plugin::ConfigLoader
198 =head2 Catalyst::Plugin::ConfigLoader::INI
201 =head2 Catalyst::Plugin::ConfigLoader::JSON
204 =head2 Catalyst::Plugin::ConfigLoader::Perl
207 =head2 Catalyst::Plugin::ConfigLoader::XML
210 =head2 Catalyst::Plugin::ConfigLoader::YAML
213 =head2 Catalyst::Plugin::Config::YAML
216 =head2 Catalyst::Plugin::DateTime
219 =head2 Catalyst::Plugin::DefaultEnd
221 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
224 =head2 Catalyst::Plugin::Devel::InPageLogs
227 =head2 Catalyst::Plugin::Devel::InPageLogs::Log
230 =head2 Catalyst::Plugin::Dumper
233 =head2 Catalyst::Plugin::Email
235 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
236 and L<Email::MIME::Creator>.
238 =head2 Catalyst::Plugin::Email::Japanese
241 =head2 Catalyst::Plugin::Email::Page
244 =head2 Catalyst::Plugin::EmailValid
247 =head2 Catalyst::Plugin::FillInForm
249 L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
250 C<HTML::FillInForm>, which describes itself as a module to automatically
251 insert data from a previous HTML form into the HTML input, textarea,
252 radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
253 subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
254 values into the form tags.
256 =head2 Catalyst::Plugin::Flavour
259 =head2 Catalyst::Plugin::FormValidator
261 L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
262 L<Data::FormValidator> to validate and set up form data from your
263 request parameters. It's a quite thin wrapper around that module, so
264 most of the relevant information can be found there.
266 =head2 Catalyst::Plugin::FormValidator::Simple
269 =head2 Catalyst::Plugin::Geography
271 L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
272 of geographical information. You can retrieve the country or code from
273 the current user, from a given IP address, or from a given hostname.
275 =head2 Catalyst::Plugin::Geography::Implementation
278 =head2 Catalyst::Plugin::HashedCookies
281 =head2 Catalyst::Plugin::HTML::Scrubber
284 =head2 Catalyst::Plugin::HTML::Widget
287 =head2 Catalyst::Plugin::I18N
289 L<Catalyst::Plugin::I18N> is an internationalization plugin for
290 Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
291 application's I18N namespace.
293 =head2 Catalyst::Plugin::JSONRPC
296 =head2 Catalyst::Plugin::Message
299 =head2 Catalyst::Plugin::MobileAgent
302 =head2 Catalyst::Plugin::Observe
304 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
305 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
307 =head2 Catalyst::Plugin::OrderedParams
309 L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
310 causing them to appear in the same order they were submitted by the browser.
311 This can be useful for creating things such as email forms.
313 =head2 Catalyst::Plugin::PageCache
315 L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
316 frequently accessed pages by caching the entire output of your page.
317 Subsequent requests to the page will receive the page very quickly from
320 =head2 Catalyst::Plugin::Params::Nested
323 =head2 Catalyst::Plugin::Params::Nested::Expander
326 =head2 Catalyst::Plugin::Pluggable
328 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
331 =head2 Catalyst::Plugin::Prototype
333 L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
334 library. This Plugin allows you to easily implement AJAX functionality
335 without actually knowing Javascript.
337 =head2 Catalyst::Plugin::Redirect
340 =head2 Catalyst::Plugin::RequestToken
343 =head2 Catalyst::Plugin::RequireSSL
345 Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
346 to access certain pages using only SSL mode. An attempt to access the
347 page in non-SSL mode will receive a redirect into SSL mode. Useful for
348 login pages, shopping carts, user registration forms, and other
351 =head2 Catalyst::Plugin::SanitizeUrl
354 =head2 Catalyst::Plugin::SanitizeUrl::PrepAction
357 =head2 Catalyst::Plugin::Scheduler
360 =head2 Catalyst::Plugin::Session
362 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
363 include session handling in an application. You can choose from several
364 different backend storage methods and combine that with your choice of
365 client-side storage methods.
367 =head2 Catalyst::Plugin::Session::CGISession
370 =head2 Catalyst::Plugin::Session::FastMmap
372 L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
373 based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
374 shared memory interprocess cache. This is an older session plugin; you may
375 wish to look at L<Catalyst::Plugin::Session> instead.
377 =head2 Catalyst::Plugin::Session::Flex
380 =head2 Catalyst::Plugin::Session::Manager
383 =head2 Catalyst::Plugin::Session::Manager::Client::Cookie
386 =head2 Catalyst::Plugin::Session::Manager::Client::Rewrite
389 =head2 Catalyst::Plugin::Session::Manager::Client::StickyQuery
392 =head2 Catalyst::Plugin::Session::Manager::Storage::CDBI
395 =head2 Catalyst::Plugin::Session::Manager::Storage::FastMmap
398 =head2 Catalyst::Plugin::Session::Manager::Storage::File
401 =head2 Catalyst::Plugin::Session::PerUser
404 =head2 Catalyst::Plugin::Session::State
407 =head2 Catalyst::Plugin::Session::State::Cookie
410 =head2 Catalyst::Plugin::Session::State::URI
413 =head2 Catalyst::Plugin::Session::Store
416 =head2 Catalyst::Plugin::Session::Store::CDBI
419 =head2 Catalyst::Plugin::Session::Store::DBI
422 =head2 Catalyst::Plugin::Session::Store::Dummy
425 =head2 Catalyst::Plugin::Session::Store::FastMmap
428 =head2 Catalyst::Plugin::Session::Store::File
431 =head2 Catalyst::Plugin::Session::Store::Memcached
434 =head2 Catalyst::Plugin::Session::Test::Store
437 =head2 Catalyst::Plugin::Singleton
440 =head2 Catalyst::Plugin::SRU
442 L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
443 actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
445 =head2 Catalyst::Plugin::StackTrace
448 =head2 Catalyst::Plugin::Static
450 L<Catalyst::Plugin::Static> is a plugin to serve static files from
451 C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
454 =head2 Catalyst::Plugin::Static::Simple
456 L<Catalyst::Plugin::Static::Simple> serves static files in your
457 application without requiring a single line of code. This plugin is now
458 included in the core Catalyst distribution.
460 =head2 Catalyst::Plugin::SubRequest
462 L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
463 actions to be made within Catalyst. Nice for portal software and such.
465 =head2 Catalyst::Plugin::SuperForm
467 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
468 module, enabling easy HTML form creation.
470 =head2 Catalyst::Plugin::Textile
472 L<Catalyst::Plugin::Textile> is a persistent Textile processor for
473 Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
474 Allen's Textile syntax. Textile is shorthand for doing common formatting
475 tasks (see L<http://textism.com>).
477 =head2 Catalyst::Plugin::Unicode
479 L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
480 request, it decodes all params from UTF-8 octets into a sequence of
481 logical characters. On response, it encodes the body into UTF-8 octets.
483 =head2 Catalyst::Plugin::Unicode::Encoding
486 =head2 Catalyst::Plugin::Upload::Basename
489 =head2 Catalyst::Plugin::Upload::MD5
492 =head2 Catalyst::Plugin::Upload::MIME
495 =head2 Catalyst::Plugin::XMLRPC
497 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
498 dispatch XMLRPC methods from its own class.
500 =head1 COMPONENT MODULES
502 =head2 Catalyst::Model::CDBI
504 L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
505 is built on top of C<Class::DBI::Loader>, which automates the
506 definition of C<Class::DBI> sub-classes by scanning the underlying
507 table schemas, setting up columns and primary keys.
509 =head2 Catalyst::Model::CDBI::Plain
511 L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
512 C<Class::DBI> module, which does not attempt to automate table
513 setup. It allows the user to manually set up C<Class::DBI>
514 classes, either by doing so within the Catalyst model classes
515 themselves, or by inheriting from existing C<Class::DBI>
518 =head2 Catalyst::Model::DBIC
520 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
521 L<DBIx::Class::Loader>.
523 =head2 Catalyst::Model::Plucene
525 L<Catalyst::Model::Plucene> is a model class for the Plucene search
528 =head2 Catalyst::Model::Xapian
530 L<Catalyst::Model::Xapian> is a model class for the Xapian search
533 =head2 Catalyst::View::HTML::Template
535 L<Catalyst::View::HTML::Template> is a View component for
536 displaying your stash with L<HTML::Template>.
538 =head2 Catalyst::View::Mason
540 L<Catalyst::View::Mason> is a View component for displaying your stash
543 =head2 Catalyst::View::PSP
545 L<Catalyst::View::PSP> is a View component for displaying your stash
546 using PSP, a Perl extension implementing a JSP-like templating system;
549 =head2 Catalyst::View::Petal
551 L<Catalyst::View::Petal> is a View component for displaying
552 your stash using Petal, the Perl Template Attribute Language,
553 an XML-based templating system; see L<Petal>.
555 =head2 Catalyst::View::TT
557 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
561 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
563 Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
565 Jesse Sheidlower E<lt>jester@panix.comE<gt>
567 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
571 This program is free software, you can redistribute it and/or modify it under
572 the same terms as Perl itself.