Updated Plugins.pod a bit
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Manual / Plugins.pod
1 =head1 NAME
2
3 Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
4
5 =head1 DESCRIPTION
6
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.  
11
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.
14
15 =head1 PLUGINS
16
17 =head2 Catalyst::Plugin::Authentication::CDBI
18
19 L<Catalyst::Plugin::Authentication::CDBI> is a CDBI (C<Class::DBI>)
20 authentication plugin.  Note that it requires a session plugin.
21
22 =head2 Catalyst::Plugin::Authentication::LDAP
23
24 L<Catalyst::Plugin::Authentication::LDAP> is a plugin allowing you 
25 to authenticate your web users using an LDAP server. 
26
27 =head2 Catalyst::Plugin::Browser
28
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
32 user agent.
33
34 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
35
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.
39
40 =head2 Catalyst::Plugin::Compress::Zlib
41
42 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
43 Catalyst.
44
45 =head2 Catalyst::Plugin::Compress::Bzip2
46
47 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
48 bzip compression.
49
50 =head2 Catalyst::Plugin::DefaultEnd
51
52 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for your
53 application.
54
55 =head2 Catalyst::Plugin::Email
56
57 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
58 and L<Email::MIME::Creator>.
59
60 =head2 Catalyst::Plugin::FillInForm
61
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.
68
69 =head2 Catalyst::Plugin::FormValidator
70
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.
75
76 =head2 Catalyst::Plugin::Geography
77
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.
81
82 =head2 Catalyst::Plugin::I18N
83
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.
87
88 =head2 Catalyst::Plugin::Observe
89
90 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
91 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
92
93 =head2 Catalyst::Plugin::OrderedParams
94
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.
98
99 =head2 Catalyst::Plugin::PageCache
100
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
104 cache.
105
106 =head2 Catalyst::Plugin::Pluggable
107
108 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
109 applications.
110
111 =head2 Catalyst::Plugin::Prototype
112
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.
116
117 =head2 Catalyst::Plugin::RequireSSL
118
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.
123
124 =head2 Catalyst::Plugin::Session
125
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.
130
131 =head2 Catalyst::Plugin::Session::FastMmap
132
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.
137
138 =head2 Catalyst::Plugin::SRU
139
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.
142
143 =head2 Catalyst::Plugin::Static::Simple
144
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.
148
149 =head2 Catalyst::Plugin::Static
150
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
153 purposes.
154
155 =head2 Catalyst::Plugin::SubRequest
156
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.
159
160 =head2 Catalyst::Plugin::SuperForm
161
162 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
163 module, enabling easy HTML form creation.
164
165 =head2 Catalyst::Plugin::Textile
166
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>).
171
172 =head2 Catalyst::Plugin::Unicode
173
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.
177
178 =head2 Catalyst::Plugin::XMLRPC
179
180 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
181 dispatch XMLRPC methods from its own class.
182
183 =head1 COMPONENT MODULES
184
185 =head2 Catalyst::Model::CDBI
186
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.
191
192 =head2 Catalyst::Model::CDBI::Plain
193
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>
199 classes.
200
201 =head2 Catalyst::Model::DBIC
202
203 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
204 L<DBIx::Class::Loader>.
205
206 =head2 Catalyst::Model::Plucene
207
208 L<Catalyst::Model::Plucene> is a model class for the Plucene search engine.
209
210 =head2 Catalyst::Model::Xapian
211
212 L<Catalyst::Model::Xapian> is a model class for the Xapian search engine.
213
214 =head2 Catalyst::View::HTML::Template
215
216 L<Catalyst::View::HTML::Template> is a View component for
217 displaying your stash with L<HTML::Template>.
218
219 =head2 Catalyst::View::Mason
220
221 L<Catalyst::View::Mason> is a View component for displaying your stash
222 with L<HTML::Mason>.
223
224 =head2 Catalyst::View::PSP
225
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>.
229
230 =head2 Catalyst::View::Petal
231
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>.
235
236 =head2 Catalyst::View::TT
237
238 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
239
240 =head1 AUTHORS
241
242 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
243
244 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
245
246 Jesse Sheidlower E<lt>jester@panix.comE<gt>
247
248 =head1 COPYRIGHT
249
250 This program is free software, you can redistribute it and/or modify it under
251 the same terms as Perl itself.