16da1ef2288e116b02cac210dfedab7e815ccd01
[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. Most 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
13 sure 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>,
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.
40
41 =head2 Catalyst::Plugin::Compress::Zlib
42
43 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
44 Catalyst.
45
46 =head2 Catalyst::Plugin::Compress::Bzip2
47
48 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
49 bzip compression.
50
51 =head2 Catalyst::Plugin::DefaultEnd
52
53 L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
54 your application.
55
56 =head2 Catalyst::Plugin::Email
57
58 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
59 and L<Email::MIME::Creator>.
60
61 =head2 Catalyst::Plugin::FillInForm
62
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.
69
70 =head2 Catalyst::Plugin::FormValidator
71
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.
76
77 =head2 Catalyst::Plugin::Geography
78
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.
82
83 =head2 Catalyst::Plugin::I18N
84
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.
88
89 =head2 Catalyst::Plugin::Observe
90
91 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
92 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
93
94 =head2 Catalyst::Plugin::OrderedParams
95
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.
99
100 =head2 Catalyst::Plugin::PageCache
101
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
105 cache.
106
107 =head2 Catalyst::Plugin::Pluggable
108
109 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
110 applications.
111
112 =head2 Catalyst::Plugin::Prototype
113
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.
117
118 =head2 Catalyst::Plugin::RequireSSL
119
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
124 sensitive data.
125
126 =head2 Catalyst::Plugin::Session
127
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.
132
133 =head2 Catalyst::Plugin::Session::FastMmap
134
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.
139
140 =head2 Catalyst::Plugin::SRU
141
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.
144
145 =head2 Catalyst::Plugin::Static::Simple
146
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.
150
151 =head2 Catalyst::Plugin::Static
152
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
155 purposes.
156
157 =head2 Catalyst::Plugin::SubRequest
158
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.
161
162 =head2 Catalyst::Plugin::SuperForm
163
164 L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
165 module, enabling easy HTML form creation.
166
167 =head2 Catalyst::Plugin::Textile
168
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>).
173
174 =head2 Catalyst::Plugin::Unicode
175
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.
179
180 =head2 Catalyst::Plugin::XMLRPC
181
182 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
183 dispatch XMLRPC methods from its own class.
184
185 =head1 COMPONENT MODULES
186
187 =head2 Catalyst::Model::CDBI
188
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.
193
194 =head2 Catalyst::Model::CDBI::Plain
195
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>
201 classes.
202
203 =head2 Catalyst::Model::DBIC
204
205 L<Catalyst::Model::DBIC> is a L<DBIx::Class> model class built on top of
206 L<DBIx::Class::Loader>.
207
208 =head2 Catalyst::Model::Plucene
209
210 L<Catalyst::Model::Plucene> is a model class for the Plucene search
211 engine.
212
213 =head2 Catalyst::Model::Xapian
214
215 L<Catalyst::Model::Xapian> is a model class for the Xapian search
216 engine.
217
218 =head2 Catalyst::View::HTML::Template
219
220 L<Catalyst::View::HTML::Template> is a View component for
221 displaying your stash with L<HTML::Template>.
222
223 =head2 Catalyst::View::Mason
224
225 L<Catalyst::View::Mason> is a View component for displaying your stash
226 with L<HTML::Mason>.
227
228 =head2 Catalyst::View::PSP
229
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;
232 see L<Text::PSP>.
233
234 =head2 Catalyst::View::Petal
235
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>.
239
240 =head2 Catalyst::View::TT
241
242 L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
243
244 =head1 AUTHORS
245
246 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
247
248 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
249
250 Jesse Sheidlower E<lt>jester@panix.comE<gt>
251
252 =head1 COPYRIGHT
253
254 This program is free software, you can redistribute it and/or modify it under
255 the same terms as Perl itself.