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. The 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, so be sure
13 to check the Catalyst::Plugin namespace for additional plugins.
17 =head2 Catalyst::Plugin::Authentication::CDBI
19 L<Catalyst::Plugin::Authentication::CDBI> is a CDBI (C<Class::DBI>)
20 authentication plugin. Note that it requires a session plugin.
22 =head2 Catalyst::Plugin::Authentication::LDAP
24 L<Catalyst::Plugin::Authentication::LDAP> is a plugin allowing you
25 to authenticate your web users using an LDAP server.
27 =head2 Catalyst::Plugin::Browser
29 L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
30 capability of browser detection. It returns an instance of
31 L<HTTP::BrowserDetect>, which lets you get information from the client's
34 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
36 L<Catalyst::Plugin::Cache::FastMmap>, L<Catalyst::Plugin::Cache::FileCache>,
37 and L<Catalyst::Plugin::Cache::Memcached> all provide a cache method enabling
38 easy access to a shared cache.
40 =head2 Catalyst::Plugin::Compress::Zlib
42 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
45 =head2 Catalyst::Plugin::Compress::Bzip2
47 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
50 =head2 Catalyst::Plugin::DefaultEnd
52 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for your
55 =head2 Catalyst::Plugin::Email
57 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
58 and L<Email::MIME::Creator>.
60 =head2 Catalyst::Plugin::FillInForm
62 L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
63 C<HTML::FillInForm>, which describes itself as a module to automatically
64 insert data from a previous HTML form into the HTML input, textarea,
65 radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
66 subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
67 values into the form tags.
69 =head2 Catalyst::Plugin::FormValidator
71 L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
72 L<Data::FormValidator> to validate and set up form data from your
73 request parameters. It's a quite thin wrapper around that module, so
74 most of the relevant information can be found there.
76 =head2 Catalyst::Plugin::Geography
78 L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
79 of geographical information. You can retrieve the country or code from
80 the current user, from a given IP address, or from a given hostname.
82 =head2 Catalyst::Plugin::I18N
84 L<Catalyst::Plugin::I18N> is an internationalization plugin for
85 Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
86 application's I18N namespace.
88 =head2 Catalyst::Plugin::Observe
90 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
91 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
93 =head2 Catalyst::Plugin::OrderedParams
95 L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
96 causing them to appear in the same order they were submitted by the browser.
97 This can be useful for creating things such as email forms.
99 =head2 Catalyst::Plugin::PageCache
101 L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
102 frequently accessed pages by caching the entire output of your page.
103 Subsequent requests to the page will receive the page very quickly from
106 =head2 Catalyst::Plugin::Pluggable
108 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
111 =head2 Catalyst::Plugin::Prototype
113 L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
114 library. This Plugin allows you to easily implement AJAX functionality
115 without actually knowing Javascript.
117 =head2 Catalyst::Plugin::RequireSSL
119 Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
120 to access certain pages using only SSL mode. An attempt to access the
121 page in non-SSL mode will receive a redirect into SSL mode. Useful for
122 shopping carts, user registration forms, and other sensitive data.
124 =head2 Catalyst::Plugin::Session
126 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
127 include session handling in an application. You can choose from several
128 different backend storage methods and combine that with your choice of
129 client-side storage methods.
131 =head2 Catalyst::Plugin::Session::FastMmap
133 L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
134 based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
135 shared memory interprocess cache. This is an older session plugin; you may
136 wish to look at L<Catalyst::Plugin::Session> instead.
138 =head2 Catalyst::Plugin::SRU
140 L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
141 actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
143 =head2 Catalyst::Plugin::Static::Simple
145 L<Catalyst::Plugin::Static::Simple> serves static files in your application
146 without requiring a single line of code. This plugin is now included in the
147 core Catalyst distribution.
149 =head2 Catalyst::Plugin::Static
151 L<Catalyst::Plugin::Static> is a plugin to serve static files from
152 C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
155 =head2 Catalyst::Plugin::SubRequest
157 L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
158 actions to be made within Catalyst. Nice for portal software and such.
160 =head2 Catalyst::Plugin::SuperForm
162 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
163 module, enabling easy HTML form creation.
165 =head2 Catalyst::Plugin::Textile
167 L<Catalyst::Plugin::Textile> is a persistent Textile processor for
168 Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
169 Allen's Textile syntax. Textile is shorthand for doing common formatting
170 tasks (see L<http://textism.com>).
172 =head2 Catalyst::Plugin::Unicode
174 L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
175 request, it decodes all params from UTF-8 octets into a sequence of
176 logical characters. On response, it encodes the body into UTF-8 octets.
178 =head2 Catalyst::Plugin::XMLRPC
180 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
181 dispatch XMLRPC methods from its own class.
183 =head1 COMPONENT MODULES
185 =head2 Catalyst::Model::CDBI
187 L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
188 is built on top of C<Class::DBI::Loader>, which automates the
189 definition of C<Class::DBI> sub-classes by scanning the underlying
190 table schemas, setting up columns and primary keys.
192 =head2 Catalyst::Model::CDBI::Plain
194 L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
195 C<Class::DBI> module, which does not attempt to automate table
196 setup. It allows the user to manually set up C<Class::DBI>
197 classes, either by doing so within the Catalyst model classes
198 themselves, or by inheriting from existing C<Class::DBI>
201 =head2 Catalyst::Model::DBIC
203 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
204 L<DBIx::Class::Loader>.
206 =head2 Catalyst::Model::Plucene
208 L<Catalyst::Model::Plucene> is a model class for the Plucene search engine.
210 =head2 Catalyst::Model::Xapian
212 L<Catalyst::Model::Xapian> is a model class for the Xapian search engine.
214 =head2 Catalyst::View::HTML::Template
216 L<Catalyst::View::HTML::Template> is a View component for
217 displaying your stash with L<HTML::Template>.
219 =head2 Catalyst::View::Mason
221 L<Catalyst::View::Mason> is a View component for displaying your stash
224 =head2 Catalyst::View::PSP
226 L<Catalyst::View::PSP> is a View component for displaying your
227 stash using PSP, a Perl extension implementing a JSP-like
228 templating system; see L<Text::PSP>.
230 =head2 Catalyst::View::Petal
232 L<Catalyst::View::Petal> is a View component for displaying
233 your stash using Petal, the Perl Template Attribute Language,
234 an XML-based templating system; see L<Petal>.
236 =head2 Catalyst::View::TT
238 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
242 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
244 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
246 Jesse Sheidlower E<lt>jester@panix.comE<gt>
250 This program is free software, you can redistribute it and/or modify it under
251 the same terms as Perl itself.