Plugin.pod formatting
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Manual / Plugins.pod
CommitLineData
83b9e3a9 1=head1 NAME
2
3Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
4
5=head1 DESCRIPTION
6
35e6ab34 7This section lists the some of the plugins and components that are
24d0c6d2 8available to extend the runtime functionality of Catalyst. Most plugins
35e6ab34 9are not distributed with Catalyst but should be available from CPAN.
24d0c6d2 10They typically require additional modules from CPAN.
4427ee06 11
24d0c6d2 12This list is almost certainly outdated by the time you read this, so be
13sure to check the Catalyst::Plugin namespace for additional plugins.
83b9e3a9 14
15=head1 PLUGINS
16
17=head2 Catalyst::Plugin::Authentication::CDBI
18
35e6ab34 19L<Catalyst::Plugin::Authentication::CDBI> is a CDBI (C<Class::DBI>)
20authentication plugin. Note that it requires a session plugin.
83b9e3a9 21
c42f5bbf 22=head2 Catalyst::Plugin::Authentication::LDAP
23
24L<Catalyst::Plugin::Authentication::LDAP> is a plugin allowing you
25to authenticate your web users using an LDAP server.
26
c42f5bbf 27=head2 Catalyst::Plugin::Browser
28
29L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
30capability of browser detection. It returns an instance of
31L<HTTP::BrowserDetect>, which lets you get information from the client's
32user agent.
33
4427ee06 34=head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
35
24d0c6d2 36L<Catalyst::Plugin::Cache::FastMmap>,
37L<Catalyst::Plugin::Cache::FileCache>, and
38L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
39enabling easy access to a shared cache.
4427ee06 40
c42f5bbf 41=head2 Catalyst::Plugin::Compress::Zlib
42
43L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
44Catalyst.
45
46=head2 Catalyst::Plugin::Compress::Bzip2
47
48L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
49bzip compression.
50
4427ee06 51=head2 Catalyst::Plugin::DefaultEnd
52
24d0c6d2 53L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
54your application.
4427ee06 55
56=head2 Catalyst::Plugin::Email
57
58L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
59and L<Email::MIME::Creator>.
60
83b9e3a9 61=head2 Catalyst::Plugin::FillInForm
62
35e6ab34 63L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
64C<HTML::FillInForm>, which describes itself as a module to automatically
65insert data from a previous HTML form into the HTML input, textarea,
66radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
67subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
68values into the form tags.
83b9e3a9 69
70=head2 Catalyst::Plugin::FormValidator
71
35e6ab34 72L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
73L<Data::FormValidator> to validate and set up form data from your
24d0c6d2 74request parameters. It's a quite thin wrapper around that module, so
35e6ab34 75most of the relevant information can be found there.
83b9e3a9 76
c42f5bbf 77=head2 Catalyst::Plugin::Geography
78
79L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
80of geographical information. You can retrieve the country or code from
81the current user, from a given IP address, or from a given hostname.
83b9e3a9 82
83=head2 Catalyst::Plugin::I18N
84
35e6ab34 85L<Catalyst::Plugin::I18N> is an internationalization plugin for
86Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
87application's I18N namespace.
83b9e3a9 88
62d40b4c 89=head2 Catalyst::Plugin::Observe
90
91L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
92callbacks to specific Engine events. Subclasses L<Class::Publisher>.
93
4427ee06 94=head2 Catalyst::Plugin::OrderedParams
95
96L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
97causing them to appear in the same order they were submitted by the browser.
98This can be useful for creating things such as email forms.
99
c74caf1d 100=head2 Catalyst::Plugin::PageCache
101
102L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
103frequently accessed pages by caching the entire output of your page.
104Subsequent requests to the page will receive the page very quickly from
4427ee06 105cache.
c74caf1d 106
83b9e3a9 107=head2 Catalyst::Plugin::Pluggable
108
35e6ab34 109L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
110applications.
83b9e3a9 111
112=head2 Catalyst::Plugin::Prototype
113
35e6ab34 114L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
115library. This Plugin allows you to easily implement AJAX functionality
116without actually knowing Javascript.
83b9e3a9 117
c74caf1d 118=head2 Catalyst::Plugin::RequireSSL
119
120Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
121to access certain pages using only SSL mode. An attempt to access the
122page in non-SSL mode will receive a redirect into SSL mode. Useful for
24d0c6d2 123login pages, shopping carts, user registration forms, and other
124sensitive data.
c74caf1d 125
4427ee06 126=head2 Catalyst::Plugin::Session
127
128The L<Catalyst::Plugin::Session> series of modules provide an easy way to
24d0c6d2 129include session handling in an application. You can choose from several
4427ee06 130different backend storage methods and combine that with your choice of
131client-side storage methods.
132
83b9e3a9 133=head2 Catalyst::Plugin::Session::FastMmap
134
35e6ab34 135L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
136based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
24d0c6d2 137shared memory interprocess cache. This is an older session plugin; you may
4427ee06 138wish to look at L<Catalyst::Plugin::Session> instead.
83b9e3a9 139
4427ee06 140=head2 Catalyst::Plugin::SRU
141
142L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
143actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
e8af4edb 144
4427ee06 145=head2 Catalyst::Plugin::Static::Simple
146
24d0c6d2 147L<Catalyst::Plugin::Static::Simple> serves static files in your
148application without requiring a single line of code. This plugin is now
149included in the core Catalyst distribution.
83b9e3a9 150
151=head2 Catalyst::Plugin::Static
152
c74caf1d 153L<Catalyst::Plugin::Static> is a plugin to serve static files from
154C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
155purposes.
83b9e3a9 156
665dadd4 157=head2 Catalyst::Plugin::SubRequest
158
35e6ab34 159L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
24d0c6d2 160actions to be made within Catalyst. Nice for portal software and such.
665dadd4 161
4427ee06 162=head2 Catalyst::Plugin::SuperForm
163
164L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
165module, enabling easy HTML form creation.
166
83b9e3a9 167=head2 Catalyst::Plugin::Textile
168
35e6ab34 169L<Catalyst::Plugin::Textile> is a persistent Textile processor for
170Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
171Allen's Textile syntax. Textile is shorthand for doing common formatting
172tasks (see L<http://textism.com>).
83b9e3a9 173
c42f5bbf 174=head2 Catalyst::Plugin::Unicode
175
176L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
177request, it decodes all params from UTF-8 octets into a sequence of
178logical characters. On response, it encodes the body into UTF-8 octets.
83b9e3a9 179
180=head2 Catalyst::Plugin::XMLRPC
181
35e6ab34 182L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
183dispatch XMLRPC methods from its own class.
83b9e3a9 184
83b9e3a9 185=head1 COMPONENT MODULES
186
187=head2 Catalyst::Model::CDBI
188
35e6ab34 189L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
4911f47a 190is built on top of C<Class::DBI::Loader>, which automates the
191definition of C<Class::DBI> sub-classes by scanning the underlying
192table schemas, setting up columns and primary keys.
83b9e3a9 193
386777dc 194=head2 Catalyst::Model::CDBI::Plain
195
196L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
197C<Class::DBI> module, which does not attempt to automate table
198setup. It allows the user to manually set up C<Class::DBI>
199classes, either by doing so within the Catalyst model classes
200themselves, or by inheriting from existing C<Class::DBI>
201classes.
202
4427ee06 203=head2 Catalyst::Model::DBIC
83b9e3a9 204
4427ee06 205L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
206L<DBIx::Class::Loader>.
83b9e3a9 207
c42f5bbf 208=head2 Catalyst::Model::Plucene
4427ee06 209
24d0c6d2 210L<Catalyst::Model::Plucene> is a model class for the Plucene search
211engine.
4427ee06 212
213=head2 Catalyst::Model::Xapian
214
24d0c6d2 215L<Catalyst::Model::Xapian> is a model class for the Xapian search
216engine.
83b9e3a9 217
c42f5bbf 218=head2 Catalyst::View::HTML::Template
83b9e3a9 219
c42f5bbf 220L<Catalyst::View::HTML::Template> is a View component for
221displaying your stash with L<HTML::Template>.
222
4427ee06 223=head2 Catalyst::View::Mason
224
225L<Catalyst::View::Mason> is a View component for displaying your stash
226with L<HTML::Mason>.
227
c42f5bbf 228=head2 Catalyst::View::PSP
229
24d0c6d2 230L<Catalyst::View::PSP> is a View component for displaying your stash
231using PSP, a Perl extension implementing a JSP-like templating system;
232see L<Text::PSP>.
c42f5bbf 233
234=head2 Catalyst::View::Petal
4427ee06 235
c42f5bbf 236L<Catalyst::View::Petal> is a View component for displaying
237your stash using Petal, the Perl Template Attribute Language,
238an XML-based templating system; see L<Petal>.
83b9e3a9 239
c42f5bbf 240=head2 Catalyst::View::TT
241
4427ee06 242L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
83b9e3a9 243
4427ee06 244=head1 AUTHORS
83b9e3a9 245
246Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
4427ee06 247
4911f47a 248Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
4427ee06 249
c42f5bbf 250Jesse Sheidlower E<lt>jester@panix.comE<gt>
83b9e3a9 251
252=head1 COPYRIGHT
253
254This program is free software, you can redistribute it and/or modify it under
255the same terms as Perl itself.