0b21a17626a84a68b4d330e684a07f38407b989c
[catagits/Catalyst-Manual.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 may well be outdated by the time you read this and some
13 plugins may be deprecated or now part of core L<Catalyst>. Be sure to
14 check the Catalyst::Plugin namespace for additional plugins and consult
15 the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for
16 advice on the current status or preferred use of your chosen
17 plugin/framework.
18
19 =head1 PLUGINS
20
21 =head2 L<Catalyst::Plugin::Account::AutoDiscovery>
22
23 Provides Account Auto-Discovery for Catalyst.
24
25 =head2 L<Catalyst::Plugin::Acme::Scramble>
26
27 Implements a potent meme about how easily we can read scrambled text if
28 the first and last letters remain constant. Operates on text/plain and
29 text/html served by your Catalyst application.
30
31 =head2 L<Catalyst::Plugin::Alarm>
32
33 =head2 L<Catalyst::Plugin::AtomPP>
34
35 Allows you to dispatch AtomPP methods.
36
37 =head2 L<Catalyst::Plugin::AtomServer>
38
39 A plugin that implements the necessary bits to make it easy to build an
40 Atom API server for any Catalyst-based application.
41
42 =head2 L<Catalyst::Plugin::Authentication>
43
44 An infrastructure plugin for the Catalyst authentication framework. Now the
45 recommended way to do any form of Authentication.
46
47 =head2 L<Catalyst::Plugin::Authentication::Credential::Atom>
48
49 L<Catalyst::Plugin::Authentication::Credential::Atom> is a plugin which
50 implements WSSE and Basic authentication for Catalyst applications using
51 L<Catalyst::Plugin::AtomServer>
52
53 =head2 L<Catalyst::Plugin::Authentication::Credential::CHAP>
54
55 =head2 L<Catalyst::Plugin::Authentication::Credential::Flickr>
56
57 Provides authentication via Flickr, using its API.
58
59 =head2 L<Catalyst::Plugin::Authentication::Credential::Hatena>
60
61 =head2 L<Catalyst::Plugin::Authentication::Credential::HTTP>
62
63 Implements HTTP Basic authentication for Catalyst.
64
65 =head2 L<Catalyst::Plugin::Authentication::Credential::JugemKey>
66
67 =head2 L<Catalyst::Plugin::Authentication::Credential::PAM>
68
69 =head2 L<Catalyst::Plugin::Authentication::Credential::Password>
70
71 Takes a username (or userid) and a password, and tries various methods of
72 comparing a password based on what the chosen store's user objects support.
73 Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
74
75 =head2 L<Catalyst::Plugin::Authentication::Credential::TypeKey>
76
77 Integrates L<Authen::TypeKey> with L<Catalyst::Plugin::Authentication>.
78
79 =head2 L<Catalyst::Plugin::Authentication::OpenID>
80
81 L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
82 support for OpenID authentication. For more information on OpenID, take
83 a look at L<http://www.openid.net/>.
84
85 =head2 L<Catalyst::Plugin::Authentication::Store>
86
87 The core authentication store documentation.
88
89 =head2 L<Catalyst::Plugin::Authentication::Store::DBIC>
90
91 Does authentication and authorization against a L<DBIx::Class> or
92 L<Class::DBI> model.
93
94 =head2 L<Catalyst::Plugin::Authentication::Store::Htpasswd>
95
96 Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
97 authentication storage.
98
99 =head2 L<Catalyst::Plugin::Authentication::Store::HTTP>
100
101 =head2 L<Catalyst::Plugin::Authentication::Store::LDAP>
102
103 Authenticates users using an LDAP server.
104
105 =head2 L<Catalyst::Plugin::Authentication::Store::Minimal>
106
107 Lets you create a very quick and dirty user database in your application's
108 config hash. Great for getting up and running quickly.
109
110 =head2 L<Catalyst::Plugin::Authentication::User::Hash>
111
112 An easy authentication user object based on hashes.
113 See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
114
115 =head2 L<Catalyst::Plugin::Authorization::ACL>
116
117 This module provides Access Control List style path protection, with arbitrary
118 rules for L<Catalyst> applications. It operates only on the Catalyst private
119 namespace, at least at the moment.
120
121 =head2 L<Catalyst::Plugin::Authorization::Roles>
122
123 L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
124 for Catalyst based on L<Catalyst::Plugin::Authentication>.
125
126 =head2 L<Catalyst::Plugin::AutoSession>
127
128 =head2 L<Catalyst::Plugin::Browser>
129
130 Extends L<Catalyst::Request> by adding the capability of browser
131 detection.  It returns an instance of L<HTTP::BrowserDetect>, which lets
132 you get information from the client's user agent.
133
134 =head2 Catalyst::Plugin::Cache::FastMmap, FileCache, BerkeleyDB, and Memcached
135
136 L<Catalyst::Plugin::Cache::FastMmap>,
137 L<Catalyst::Plugin::Cache::FileCache>,
138 L<Catalyst::Plugin::Cache::BerkeleyDB>, and
139 L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
140 enabling easy access to a shared cache.
141
142 =head2 L<Catalyst::Plugin::Captcha>
143
144 =head2 L<Catalyst::Plugin::CGI::Untaint>
145
146 =head2 L<Catalyst::Plugin::Charsets::Japanese>
147
148 =head2 L<Catalyst::Plugin::Compress::Bzip2>
149
150 =head2 L<Catalyst::Plugin::Compress::Deflate>
151
152 =head2 L<Catalyst::Plugin::Compress::Gzip>
153
154 =head2 L<Catalyst::Plugin::Compress::Zlib>
155
156 =head2 L<Catalyst::Plugin::ConfigLoader>
157
158 Provides a standard method for loading config files. Support
159 exists for various formats. See
160 L<Catalyst::Plugin::ConfigLoader::General>
161 L<Catalyst::Plugin::ConfigLoader::INI>,
162 L<Catalyst::Plugin::ConfigLoader::JSON>,
163 L<Catalyst::Plugin::ConfigLoader::Perl>,
164 L<Catalyst::Plugin::ConfigLoader::XML>, and
165 L<Catalyst::Plugin::ConfigLoader::YAML>
166
167 =head2 L<Catalyst::Plugin::ConfigurablePathTo>
168
169 =head2 L<Catalyst::Plugin::Continuation>
170
171 =head2 L<Catalyst::Plugin::DateTime>
172
173 =head2 L<Catalyst::Action::RenderView>
174
175 Creates a sane, standard end method for your application.
176
177 =head2 L<Catalyst::Plugin::Devel::InPageLogs>
178
179 =head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>
180
181 =head2 L<Catalyst::Plugin::Dojo>
182
183 =head2 L<Catalyst::Plugin::Dumper>
184
185 =head2 L<Catalyst::Plugin::Email>
186
187 Sends email with L<Email::Send> and L<Email::MIME::Creator>.
188
189 =head2 L<Catalyst::Plugin::Email::Japanese>
190
191 =head2 L<Catalyst::Plugin::Email::Page>
192
193 =head2 L<Catalyst::Plugin::EmailValid>
194
195 =head2 L<Catalyst::Plugin::FillInForm>
196
197 A plugin based on C<HTML::FillInForm>, which describes itself as a module
198 to automatically insert data from a previous HTML form into the HTML input,
199 textarea, radio buttons, checkboxes, and select tags.  C<HTML::FillInForm>
200 is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
201 the values into the form tags.
202
203 =head2 L<Catalyst::Plugin::Flavour>
204
205 =head2 L<Catalyst::Plugin::FormValidator>
206
207 A form validator plugin that uses L<Data::FormValidator> to validate and
208 set up form data from your request parameters. It's a quite thin wrapper
209 around that module, so most of the relevant information can be found there.
210
211 =head2 L<Catalyst::Plugin::FormValidator::Simple>
212
213 =head2 L<Catalyst::Plugin::Geography>
214
215 Allows you to retrieve various kinds of geographical information. You can
216 retrieve the country or code from the current user, from a given IP
217 address, or from a given hostname.
218
219 =head2 L<Catalyst::Plugin::Geography::Implementation>
220
221 =head2 L<Catalyst::Plugin::HashedCookies>
222
223 =head2 L<Catalyst::Plugin::HTML::Scrubber>
224
225 =head2 L<Catalyst::Plugin::HTML::Widget>
226
227 =head2 L<Catalyst::Plugin::I18N>
228
229 An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
230 and Maketext classes under your application's I18N namespace.
231
232 =head2 L<Catalyst::Plugin::JSONRPC>
233
234 =head2 L<Catalyst::Plugin::Markdown>
235
236 =head2 L<Catalyst::Plugin::Message>
237
238 =head2 L<Catalyst::Plugin::MobileAgent>
239
240 =head2 L<Catalyst::Plugin::Observe>
241
242 Provides the ability to register AOP-like callbacks to specific Engine
243 events. Subclasses L<Class::Publisher>.
244
245 =head2 L<Catalyst::Plugin::OrderedParams>
246
247 Adjusts the way that parameters operate, causing them to appear in the same
248 order they were submitted by the browser. This can be useful for creating
249 things such as email forms.
250
251 =head2 L<Catalyst::Plugin::PageCache>
252
253 Helps improve the performance of slow or frequently accessed pages by
254 caching the entire output of your page. Subsequent requests to the page
255 will receive the page very quickly from cache.
256
257 =head2 L<Catalyst::Plugin::Params::Nested>
258
259 =head2 L<Catalyst::Plugin::Params::Nested::Expander>
260
261 =head2 L<Catalyst::Plugin::Pluggable>
262
263 A plugin for pluggable Catalyst applications.
264
265 =head2 L<Catalyst::Plugin::Prototype>
266
267 A plugin for the Prototype JavaScript library. This Plugin allows you to
268 easily implement AJAX functionality without actually knowing Javascript.
269
270 =head2 L<Catalyst::Plugin::Redirect>
271
272 =head2 L<Catalyst::Plugin::RequestToken>
273
274 =head2 L<Catalyst::Plugin::RequireSSL>
275
276 Use this if you would like to force visitors to access certain pages using
277 only SSL mode. An attempt to access the page in non-SSL mode will receive a
278 redirect into SSL mode. Useful for login pages, shopping carts, user
279 registration forms, and other sensitive data.
280
281 =head2 L<Catalyst::Plugin::Scheduler>
282
283 =head2 L<Catalyst::Plugin::Session>
284
285 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
286 include session handling in an application. You can choose from several
287 different backend storage methods and combine that with your choice of
288 client-side storage methods.
289
290 =head2 L<Catalyst::Plugin::Session::PerUser>
291
292 =head2 L<Catalyst::Plugin::Session::State>
293
294 =head2 L<Catalyst::Plugin::Session::State::Cookie>
295
296 =head2 L<Catalyst::Plugin::Session::State::URI>
297
298 =head2 L<Catalyst::Plugin::Session::Store>
299
300 =head2 L<Catalyst::Plugin::Session::Store::CDBI>
301
302 =head2 L<Catalyst::Plugin::Session::Store::DBI>
303
304 =head2 L<Catalyst::Plugin::Session::Store::DBIC>
305
306 =head2 L<Catalyst::Plugin::Session::Store::Dummy>
307
308 =head2 L<Catalyst::Plugin::Session::Store::FastMmap>
309
310 =head2 L<Catalyst::Plugin::Session::Store::File>
311
312 =head2 L<Catalyst::Plugin::Session::Store::Memcached>
313
314 =head2 L<Catalyst::Plugin::Session::Test::Store>
315
316 =head2 L<Catalyst::Plugin::Singleton>
317
318 =head2 L<Catalyst::Plugin::Snippets>
319
320 =head2 L<Catalyst::Plugin::SRU>
321
322 Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
323 and C<searchRetrieve>) from its own class.
324
325 =head2 L<Catalyst::Plugin::StackTrace>
326
327 =head2 L<Catalyst::Plugin::Static>
328
329 L<Catalyst::Plugin::Static> is a plugin to serve static files from
330 C<< $c->config->{root} >>. Intended chiefly for development
331 purposes.
332
333 =head2 L<Catalyst::Plugin::Static::Simple>
334
335 Serves static files in your application without requiring a single line of
336 code. This plugin is now included in the core Catalyst distribution.
337
338 =head2 L<Catalyst::Plugin::SubRequest>
339
340 A plugin to allow subrequests to actions to be made within Catalyst. Nice
341 for portal software and such.
342
343 =head2 L<Catalyst::Plugin::SuperForm>
344
345 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
346 creation.
347
348 =head2 L<Catalyst::Plugin::Textile>
349
350 A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
351 Perl-based implementation of Dean Allen's Textile syntax. Textile is
352 shorthand for doing common formatting tasks (see L<http://textism.com>).
353
354 =head2 L<Catalyst::Plugin::Unicode>
355
356 Provides a Unicode-aware Catalyst. On request, it decodes all params from
357 UTF-8 octets into a sequence of logical characters. On response, it encodes
358 the body into UTF-8 octets.
359
360 =head2 L<Catalyst::Plugin::Unicode::Encoding>
361
362 =head2 L<Catalyst::Plugin::Upload::Basename>
363
364 =head2 L<Catalyst::Plugin::Upload::MD5>
365
366 =head2 L<Catalyst::Plugin::Upload::MIME>
367
368 =head2 L<Catalyst::Plugin::UploadProgress>
369
370 =head2 L<Catalyst::Plugin::XMLRPC>
371
372 Allows your Controller class to dispatch XMLRPC methods from its own class.
373
374 =head1 CONTROLLERS
375
376 =head2 L<Catalyst::Controller::HTML::FormFu>
377
378 Catalyst integration for <HTML::FormFu>.
379
380 =head1 MODELS
381
382 =head2 L<Catalyst::Model::CDBI>
383
384 The C<Class::DBI> (CDBI) model class.  It is built on top of
385 C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
386 sub-classes by scanning the underlying table schemas, setting up columns
387 and primary keys.
388
389 =head2 L<Catalyst::Model::CDBI::Plain>
390
391 A neutral interface to the C<Class::DBI> module which does not attempt
392 to automate table setup. It allows the user to manually set up
393 C<Class::DBI> classes, either by doing so within the Catalyst model
394 classes themselves, or by inheriting from existing C<Class::DBI>
395 classes.
396
397 =head2 L<Catalyst::Model::DBIC::Schema>
398
399 A L<DBIx::Class> model class that can use either an explicit
400 L<DBIx::Class::Schema> or one automatically loaded from your database
401 via L<DBIx::Class::Schema::Loader>.
402
403 =head2 L<Catalyst::Model::EVDB>
404
405 =head2 L<Catalyst::Model::File>
406
407 =head2 L<Catalyst::Model::Gedcom>
408
409 =head2 L<Catalyst::Model::LDAP>
410
411 =head2 L<Catalyst::Model::NetBlogger>
412
413 =head2 L<Catalyst::Model::Plucene>
414
415 A model class for the Plucene search engine.
416
417 =head2 L<Catalyst::Model::Proxy>
418
419 =head2 L<Catalyst::Model::SVN>
420
421 =head2 L<Catalyst::Model::Xapian>
422
423 A model class for the Xapian search engine.
424
425 =head1 VIEWS
426
427 =head2 L<Catalyst::View::Atom::XML>
428
429 =head2 L<Catalyst::View::Chart::Strip>
430
431 =head2 L<Catalyst::View::CSS::Squish>
432
433 =head2 L<Catalyst::View::Embperl>
434
435 =head2 L<Catalyst::View::GD::Barcode>
436
437 =head2 L<Catalyst::View::GraphViz>
438
439 =head2 L<Catalyst::View::HTML::Template>
440
441 A view component for rendering pages with L<HTML::Template>.
442
443 =head2 L<Catalyst::View::Jemplate>
444
445 =head2 L<Catalyst::View::JSON>
446
447 =head2 L<Catalyst::View::Mason>
448
449 A view component for rendering pages with L<HTML::Mason>.
450
451 =head2 L<Catalyst::View::MicroMason>
452
453 =head2 L<Catalyst::View::PHP>
454
455 =head2 L<Catalyst::View::PSP>
456
457 A view component for rendering pages using PSP, a Perl extension
458 implementing a JSP-like templating system. See L<Text::PSP>.
459
460 =head2 L<Catalyst::View::Petal>
461
462 A view component for rendering pages using Petal, the Perl Template
463 Attribute Language, an XML-based templating system. See L<Petal>.
464
465 =head2 L<Catalyst::View::TT>
466
467 A view component for rendering pages with Template Toolkit. See
468 L<Template::Manual>.
469
470 =head2 L<Catalyst::View::XSLT>
471
472 =head2 L<Catalyst::View::vCard>
473
474 =head1 OBSOLETE MODULES
475
476 =head2 L<Catalyst::Controller::BindLex>
477
478 Lets you mark lexical variables with a C<Stashed> attribute, automatically
479 passing them to the stash. Discouraged by the author.
480
481 =head2 L<Catalyst::Model::DBIC>
482
483 Replaced by L<Catalyst::Model::DBIC::Schema>.
484
485 =head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
486
487 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
488
489 =head2 L<Catalyst::Plugin::Authentication::CDBI>
490
491 Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
492
493 =head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
494
495 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
496
497 =head2 L<Catalyst::Plugin::Authentication::LDAP>
498
499 Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
500
501 =head2 L<Catalyst::Plugin::Authentication::Simple>
502
503 Replaced by L<Catalyst::Plugin::Authentication>.
504
505 =head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
506
507 =head2 L<Catalyst::Plugin::CDBI::Transaction>
508
509 =head2 Catalyst::Plugin::Config::*
510
511 The L<Catalyst::Plugin::Config::JSON> and
512 L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
513 corresponding L<Catalyst::Plugin::ConfigLoader> modules.
514
515 =head2 L<Catalyst::Plugin::DefaultEnd>
516
517 Replaced by L<Catalyst::Action::RenderView>
518
519 =head2 L<Catalyst::Plugin::SanitizeUrl>
520
521 =head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
522
523 =head2 Catalyst::Plugin::Session::*
524
525 The L<Catalyst::Plugin::Session::CGISession>,
526 L<Catalyst::Plugin::Session::FastMmap>,
527 L<Catalyst::Plugin::Session::Flex>, and
528 L<Catalyst::Plugin::Session::Manager>
529 modules have been replaced by the <Catalyst::Plugin::Session> framework.
530
531 =head1 AUTHORS
532
533 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
534
535 Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
536
537 Jesse Sheidlower E<lt>jester@panix.comE<gt>
538
539 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
540
541 David Kamholz E<lt>dkamholz@cpan.orgE<gt>
542
543 =head1 COPYRIGHT
544
545 This program is free software, you can redistribute it and/or modify it under
546 the same terms as Perl itself.