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, so be
13 sure 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>,
37 L<Catalyst::Plugin::Cache::FileCache>, and
38 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
39 enabling easy access to a shared cache.
41 =head2 Catalyst::Plugin::Compress::Zlib
43 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
46 =head2 Catalyst::Plugin::Compress::Bzip2
48 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
51 =head2 Catalyst::Plugin::DefaultEnd
53 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
56 =head2 Catalyst::Plugin::Email
58 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
59 and L<Email::MIME::Creator>.
61 =head2 Catalyst::Plugin::FillInForm
63 L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
64 C<HTML::FillInForm>, which describes itself as a module to automatically
65 insert data from a previous HTML form into the HTML input, textarea,
66 radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
67 subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
68 values into the form tags.
70 =head2 Catalyst::Plugin::FormValidator
72 L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
73 L<Data::FormValidator> to validate and set up form data from your
74 request parameters. It's a quite thin wrapper around that module, so
75 most of the relevant information can be found there.
77 =head2 Catalyst::Plugin::Geography
79 L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
80 of geographical information. You can retrieve the country or code from
81 the current user, from a given IP address, or from a given hostname.
83 =head2 Catalyst::Plugin::I18N
85 L<Catalyst::Plugin::I18N> is an internationalization plugin for
86 Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
87 application's I18N namespace.
89 =head2 Catalyst::Plugin::Observe
91 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
92 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
94 =head2 Catalyst::Plugin::OrderedParams
96 L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
97 causing them to appear in the same order they were submitted by the browser.
98 This can be useful for creating things such as email forms.
100 =head2 Catalyst::Plugin::PageCache
102 L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
103 frequently accessed pages by caching the entire output of your page.
104 Subsequent requests to the page will receive the page very quickly from
107 =head2 Catalyst::Plugin::Pluggable
109 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
112 =head2 Catalyst::Plugin::Prototype
114 L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
115 library. This Plugin allows you to easily implement AJAX functionality
116 without actually knowing Javascript.
118 =head2 Catalyst::Plugin::RequireSSL
120 Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
121 to access certain pages using only SSL mode. An attempt to access the
122 page in non-SSL mode will receive a redirect into SSL mode. Useful for
123 login pages, shopping carts, user registration forms, and other
126 =head2 Catalyst::Plugin::Session
128 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
129 include session handling in an application. You can choose from several
130 different backend storage methods and combine that with your choice of
131 client-side storage methods.
133 =head2 Catalyst::Plugin::Session::FastMmap
135 L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
136 based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
137 shared memory interprocess cache. This is an older session plugin; you may
138 wish to look at L<Catalyst::Plugin::Session> instead.
140 =head2 Catalyst::Plugin::SRU
142 L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
143 actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
145 =head2 Catalyst::Plugin::Static::Simple
147 L<Catalyst::Plugin::Static::Simple> serves static files in your
148 application without requiring a single line of code. This plugin is now
149 included in the core Catalyst distribution.
151 =head2 Catalyst::Plugin::Static
153 L<Catalyst::Plugin::Static> is a plugin to serve static files from
154 C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
157 =head2 Catalyst::Plugin::SubRequest
159 L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
160 actions to be made within Catalyst. Nice for portal software and such.
162 =head2 Catalyst::Plugin::SuperForm
164 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
165 module, enabling easy HTML form creation.
167 =head2 Catalyst::Plugin::Textile
169 L<Catalyst::Plugin::Textile> is a persistent Textile processor for
170 Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
171 Allen's Textile syntax. Textile is shorthand for doing common formatting
172 tasks (see L<http://textism.com>).
174 =head2 Catalyst::Plugin::Unicode
176 L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
177 request, it decodes all params from UTF-8 octets into a sequence of
178 logical characters. On response, it encodes the body into UTF-8 octets.
180 =head2 Catalyst::Plugin::XMLRPC
182 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
183 dispatch XMLRPC methods from its own class.
185 =head1 COMPONENT MODULES
187 =head2 Catalyst::Model::CDBI
189 L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
190 is built on top of C<Class::DBI::Loader>, which automates the
191 definition of C<Class::DBI> sub-classes by scanning the underlying
192 table schemas, setting up columns and primary keys.
194 =head2 Catalyst::Model::CDBI::Plain
196 L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
197 C<Class::DBI> module, which does not attempt to automate table
198 setup. It allows the user to manually set up C<Class::DBI>
199 classes, either by doing so within the Catalyst model classes
200 themselves, or by inheriting from existing C<Class::DBI>
203 =head2 Catalyst::Model::DBIC
205 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
206 L<DBIx::Class::Loader>.
208 =head2 Catalyst::Model::Plucene
210 L<Catalyst::Model::Plucene> is a model class for the Plucene search
213 =head2 Catalyst::Model::Xapian
215 L<Catalyst::Model::Xapian> is a model class for the Xapian search
218 =head2 Catalyst::View::HTML::Template
220 L<Catalyst::View::HTML::Template> is a View component for
221 displaying your stash with L<HTML::Template>.
223 =head2 Catalyst::View::Mason
225 L<Catalyst::View::Mason> is a View component for displaying your stash
228 =head2 Catalyst::View::PSP
230 L<Catalyst::View::PSP> is a View component for displaying your stash
231 using PSP, a Perl extension implementing a JSP-like templating system;
234 =head2 Catalyst::View::Petal
236 L<Catalyst::View::Petal> is a View component for displaying
237 your stash using Petal, the Perl Template Attribute Language,
238 an XML-based templating system; see L<Petal>.
240 =head2 Catalyst::View::TT
242 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
246 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
248 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
250 Jesse Sheidlower E<lt>jester@panix.comE<gt>
254 This program is free software, you can redistribute it and/or modify it under
255 the same terms as Perl itself.