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