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. Soon to be 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::Minimal
126 L<Catalyst::Plugin::Authentication::Store::Minimal> lets you create a very
127 quick and dirty user database in your application's config hash.
128 Great for getting up and running quickly.
130 =head2 Catalyst::Plugin::Authentication::User::Hash
132 L<Catalyst::Plugin::Authentication::User::Hash> is an easy authentication
133 user object based on hashes.
134 See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
136 =head2 Catalyst::Plugin::Authorization::ACL
139 =head2 Catalyst::Plugin::Authorization::ACL::Engine
142 =head2 Catalyst::Plugin::Authorization::CDBI::GroupToken
145 =head2 Catalyst::Plugin::Authorization::Roles
147 L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
148 for Catalyst based on L<Catalyst::Plugin::Authentication>.
150 =head2 Catalyst::Plugin::Browser
152 L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
153 capability of browser detection. It returns an instance of
154 L<HTTP::BrowserDetect>, which lets you get information from the client's
157 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
159 L<Catalyst::Plugin::Cache::FastMmap>,
160 L<Catalyst::Plugin::Cache::FileCache>, and
161 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
162 enabling easy access to a shared cache.
164 =head2 Catalyst::Plugin::CDBI::Transaction
167 =head2 Catalyst::Plugin::Charsets::Japanese
170 =head2 Catalyst::Plugin::Compress::Bzip2
172 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
175 =head2 Catalyst::Plugin::Compress::Deflate
178 =head2 Catalyst::Plugin::Compress::Gzip
181 =head2 Catalyst::Plugin::Compress::Zlib
183 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
186 =head2 Catalyst::Plugin::Config::JSON
189 =head2 Catalyst::Plugin::ConfigLoader
192 =head2 Catalyst::Plugin::ConfigLoader::INI
195 =head2 Catalyst::Plugin::ConfigLoader::JSON
198 =head2 Catalyst::Plugin::ConfigLoader::Perl
201 =head2 Catalyst::Plugin::ConfigLoader::XML
204 =head2 Catalyst::Plugin::ConfigLoader::YAML
207 =head2 Catalyst::Plugin::Config::YAML
210 =head2 Catalyst::Plugin::DateTime
213 =head2 Catalyst::Plugin::DefaultEnd
215 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
218 =head2 Catalyst::Plugin::Devel::InPageLogs
221 =head2 Catalyst::Plugin::Devel::InPageLogs::Log
224 =head2 Catalyst::Plugin::Dumper
227 =head2 Catalyst::Plugin::Email
229 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
230 and L<Email::MIME::Creator>.
232 =head2 Catalyst::Plugin::Email::Japanese
235 =head2 Catalyst::Plugin::Email::Page
238 =head2 Catalyst::Plugin::EmailValid
241 =head2 Catalyst::Plugin::FillInForm
243 L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
244 C<HTML::FillInForm>, which describes itself as a module to automatically
245 insert data from a previous HTML form into the HTML input, textarea,
246 radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
247 subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
248 values into the form tags.
250 =head2 Catalyst::Plugin::Flavour
253 =head2 Catalyst::Plugin::FormValidator
255 L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
256 L<Data::FormValidator> to validate and set up form data from your
257 request parameters. It's a quite thin wrapper around that module, so
258 most of the relevant information can be found there.
260 =head2 Catalyst::Plugin::FormValidator::Simple
263 =head2 Catalyst::Plugin::Geography
265 L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
266 of geographical information. You can retrieve the country or code from
267 the current user, from a given IP address, or from a given hostname.
269 =head2 Catalyst::Plugin::Geography::Implementation
272 =head2 Catalyst::Plugin::HashedCookies
275 =head2 Catalyst::Plugin::HTML::Scrubber
278 =head2 Catalyst::Plugin::HTML::Widget
281 =head2 Catalyst::Plugin::I18N
283 L<Catalyst::Plugin::I18N> is an internationalization plugin for
284 Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
285 application's I18N namespace.
287 =head2 Catalyst::Plugin::JSONRPC
290 =head2 Catalyst::Plugin::Message
293 =head2 Catalyst::Plugin::MobileAgent
296 =head2 Catalyst::Plugin::Observe
298 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
299 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
301 =head2 Catalyst::Plugin::OrderedParams
303 L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
304 causing them to appear in the same order they were submitted by the browser.
305 This can be useful for creating things such as email forms.
307 =head2 Catalyst::Plugin::PageCache
309 L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
310 frequently accessed pages by caching the entire output of your page.
311 Subsequent requests to the page will receive the page very quickly from
314 =head2 Catalyst::Plugin::Params::Nested
317 =head2 Catalyst::Plugin::Params::Nested::Expander
320 =head2 Catalyst::Plugin::Pluggable
322 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
325 =head2 Catalyst::Plugin::Prototype
327 L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
328 library. This Plugin allows you to easily implement AJAX functionality
329 without actually knowing Javascript.
331 =head2 Catalyst::Plugin::Redirect
334 =head2 Catalyst::Plugin::RequestToken
337 =head2 Catalyst::Plugin::RequireSSL
339 Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
340 to access certain pages using only SSL mode. An attempt to access the
341 page in non-SSL mode will receive a redirect into SSL mode. Useful for
342 login pages, shopping carts, user registration forms, and other
345 =head2 Catalyst::Plugin::SanitizeUrl
348 =head2 Catalyst::Plugin::SanitizeUrl::PrepAction
351 =head2 Catalyst::Plugin::Scheduler
354 =head2 Catalyst::Plugin::Session
356 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
357 include session handling in an application. You can choose from several
358 different backend storage methods and combine that with your choice of
359 client-side storage methods.
361 =head2 Catalyst::Plugin::Session::CGISession
364 =head2 Catalyst::Plugin::Session::FastMmap
366 L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
367 based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
368 shared memory interprocess cache. This is an older session plugin; you may
369 wish to look at L<Catalyst::Plugin::Session> instead.
371 =head2 Catalyst::Plugin::Session::Flex
374 =head2 Catalyst::Plugin::Session::Manager
377 =head2 Catalyst::Plugin::Session::Manager::Client::Cookie
380 =head2 Catalyst::Plugin::Session::Manager::Client::Rewrite
383 =head2 Catalyst::Plugin::Session::Manager::Client::StickyQuery
386 =head2 Catalyst::Plugin::Session::Manager::Storage::CDBI
389 =head2 Catalyst::Plugin::Session::Manager::Storage::FastMmap
392 =head2 Catalyst::Plugin::Session::Manager::Storage::File
395 =head2 Catalyst::Plugin::Session::PerUser
398 =head2 Catalyst::Plugin::Session::State
401 =head2 Catalyst::Plugin::Session::State::Cookie
404 =head2 Catalyst::Plugin::Session::State::URI
407 =head2 Catalyst::Plugin::Session::Store
410 =head2 Catalyst::Plugin::Session::Store::CDBI
413 =head2 Catalyst::Plugin::Session::Store::DBI
416 =head2 Catalyst::Plugin::Session::Store::Dummy
419 =head2 Catalyst::Plugin::Session::Store::FastMmap
422 =head2 Catalyst::Plugin::Session::Store::File
425 =head2 Catalyst::Plugin::Session::Store::Memcached
428 =head2 Catalyst::Plugin::Session::Test::Store
431 =head2 Catalyst::Plugin::Singleton
434 =head2 Catalyst::Plugin::SRU
436 L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
437 actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
439 =head2 Catalyst::Plugin::StackTrace
442 =head2 Catalyst::Plugin::Static
444 L<Catalyst::Plugin::Static> is a plugin to serve static files from
445 C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
448 =head2 Catalyst::Plugin::Static::Simple
450 L<Catalyst::Plugin::Static::Simple> serves static files in your
451 application without requiring a single line of code. This plugin is now
452 included in the core Catalyst distribution.
454 =head2 Catalyst::Plugin::SubRequest
456 L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
457 actions to be made within Catalyst. Nice for portal software and such.
459 =head2 Catalyst::Plugin::SuperForm
461 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
462 module, enabling easy HTML form creation.
464 =head2 Catalyst::Plugin::Textile
466 L<Catalyst::Plugin::Textile> is a persistent Textile processor for
467 Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
468 Allen's Textile syntax. Textile is shorthand for doing common formatting
469 tasks (see L<http://textism.com>).
471 =head2 Catalyst::Plugin::Unicode
473 L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
474 request, it decodes all params from UTF-8 octets into a sequence of
475 logical characters. On response, it encodes the body into UTF-8 octets.
477 =head2 Catalyst::Plugin::Unicode::Encoding
480 =head2 Catalyst::Plugin::Upload::Basename
483 =head2 Catalyst::Plugin::Upload::MD5
486 =head2 Catalyst::Plugin::Upload::MIME
489 =head2 Catalyst::Plugin::XMLRPC
491 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
492 dispatch XMLRPC methods from its own class.
494 =head1 COMPONENT MODULES
496 =head2 Catalyst::Model::CDBI
498 L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
499 is built on top of C<Class::DBI::Loader>, which automates the
500 definition of C<Class::DBI> sub-classes by scanning the underlying
501 table schemas, setting up columns and primary keys.
503 =head2 Catalyst::Model::CDBI::Plain
505 L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
506 C<Class::DBI> module, which does not attempt to automate table
507 setup. It allows the user to manually set up C<Class::DBI>
508 classes, either by doing so within the Catalyst model classes
509 themselves, or by inheriting from existing C<Class::DBI>
512 =head2 Catalyst::Model::DBIC
514 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
515 L<DBIx::Class::Loader>.
517 =head2 Catalyst::Model::Plucene
519 L<Catalyst::Model::Plucene> is a model class for the Plucene search
522 =head2 Catalyst::Model::Xapian
524 L<Catalyst::Model::Xapian> is a model class for the Xapian search
527 =head2 Catalyst::View::HTML::Template
529 L<Catalyst::View::HTML::Template> is a View component for
530 displaying your stash with L<HTML::Template>.
532 =head2 Catalyst::View::Mason
534 L<Catalyst::View::Mason> is a View component for displaying your stash
537 =head2 Catalyst::View::PSP
539 L<Catalyst::View::PSP> is a View component for displaying your stash
540 using PSP, a Perl extension implementing a JSP-like templating system;
543 =head2 Catalyst::View::Petal
545 L<Catalyst::View::Petal> is a View component for displaying
546 your stash using Petal, the Perl Template Attribute Language,
547 an XML-based templating system; see L<Petal>.
549 =head2 Catalyst::View::TT
551 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
555 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
557 Gavin Henry E<lt>ghenry@suretecsystems.com<gt>
559 Jesse Sheidlower E<lt>jester@panix.comE<gt>
561 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
565 This program is free software, you can redistribute it and/or modify it under
566 the same terms as Perl itself.