Replace DefaultEnd with RenderView
[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::INI>,
161 L<Catalyst::Plugin::ConfigLoader::JSON>,
162 L<Catalyst::Plugin::ConfigLoader::Perl>,
163 L<Catalyst::Plugin::ConfigLoader::XML>, and
164 L<Catalyst::Plugin::ConfigLoader::YAML>
165
166 =head2 L<Catalyst::Plugin::ConfigurablePathTo>
167
168 =head2 L<Catalyst::Plugin::Continuation>
169
170 =head2 L<Catalyst::Plugin::DateTime>
171
172 =head2 L<Catalyst::Action::RenderView>
173
174 Creates a sane, standard end method for your application.
175
176 =head2 L<Catalyst::Plugin::Devel::InPageLogs>
177
178 =head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>
179
180 =head2 L<Catalyst::Plugin::Dojo>
181
182 =head2 L<Catalyst::Plugin::Dumper>
183
184 =head2 L<Catalyst::Plugin::Email>
185
186 Sends email with L<Email::Send> and L<Email::MIME::Creator>.
187
188 =head2 L<Catalyst::Plugin::Email::Japanese>
189
190 =head2 L<Catalyst::Plugin::Email::Page>
191
192 =head2 L<Catalyst::Plugin::EmailValid>
193
194 =head2 L<Catalyst::Plugin::FillInForm>
195
196 A plugin based on C<HTML::FillInForm>, which describes itself as a module
197 to automatically insert data from a previous HTML form into the HTML input,
198 textarea, radio buttons, checkboxes, and select tags.  C<HTML::FillInForm>
199 is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
200 the values into the form tags.
201
202 =head2 L<Catalyst::Plugin::Flavour>
203
204 =head2 L<Catalyst::Plugin::FormValidator>
205
206 A form validator plugin that uses L<Data::FormValidator> to validate and
207 set up form data from your request parameters. It's a quite thin wrapper
208 around that module, so most of the relevant information can be found there.
209
210 =head2 L<Catalyst::Plugin::FormValidator::Simple>
211
212 =head2 L<Catalyst::Plugin::Geography>
213
214 Allows you to retrieve various kinds of geographical information. You can
215 retrieve the country or code from the current user, from a given IP
216 address, or from a given hostname.
217
218 =head2 L<Catalyst::Plugin::Geography::Implementation>
219
220 =head2 L<Catalyst::Plugin::HashedCookies>
221
222 =head2 L<Catalyst::Plugin::HTML::Scrubber>
223
224 =head2 L<Catalyst::Plugin::HTML::Widget>
225
226 =head2 L<Catalyst::Plugin::I18N>
227
228 An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
229 and Maketext classes under your application's I18N namespace.
230
231 =head2 L<Catalyst::Plugin::JSONRPC>
232
233 =head2 L<Catalyst::Plugin::Markdown>
234
235 =head2 L<Catalyst::Plugin::Message>
236
237 =head2 L<Catalyst::Plugin::MobileAgent>
238
239 =head2 L<Catalyst::Plugin::Observe>
240
241 Provides the ability to register AOP-like callbacks to specific Engine
242 events. Subclasses L<Class::Publisher>.
243
244 =head2 L<Catalyst::Plugin::OrderedParams>
245
246 Adjusts the way that parameters operate, causing them to appear in the same
247 order they were submitted by the browser. This can be useful for creating
248 things such as email forms.
249
250 =head2 L<Catalyst::Plugin::PageCache>
251
252 Helps improve the performance of slow or frequently accessed pages by
253 caching the entire output of your page. Subsequent requests to the page
254 will receive the page very quickly from cache.
255
256 =head2 L<Catalyst::Plugin::Params::Nested>
257
258 =head2 L<Catalyst::Plugin::Params::Nested::Expander>
259
260 =head2 L<Catalyst::Plugin::Pluggable>
261
262 A plugin for pluggable Catalyst applications.
263
264 =head2 L<Catalyst::Plugin::Prototype>
265
266 A plugin for the Prototype JavaScript library. This Plugin allows you to
267 easily implement AJAX functionality without actually knowing Javascript.
268
269 =head2 L<Catalyst::Plugin::Redirect>
270
271 =head2 L<Catalyst::Plugin::RequestToken>
272
273 =head2 L<Catalyst::Plugin::RequireSSL>
274
275 Use this if you would like to force visitors to access certain pages using
276 only SSL mode. An attempt to access the page in non-SSL mode will receive a
277 redirect into SSL mode. Useful for login pages, shopping carts, user
278 registration forms, and other sensitive data.
279
280 =head2 L<Catalyst::Plugin::Scheduler>
281
282 =head2 L<Catalyst::Plugin::Session>
283
284 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
285 include session handling in an application. You can choose from several
286 different backend storage methods and combine that with your choice of
287 client-side storage methods.
288
289 =head2 L<Catalyst::Plugin::Session::PerUser>
290
291 =head2 L<Catalyst::Plugin::Session::State>
292
293 =head2 L<Catalyst::Plugin::Session::State::Cookie>
294
295 =head2 L<Catalyst::Plugin::Session::State::URI>
296
297 =head2 L<Catalyst::Plugin::Session::Store>
298
299 =head2 L<Catalyst::Plugin::Session::Store::CDBI>
300
301 =head2 L<Catalyst::Plugin::Session::Store::DBI>
302
303 =head2 L<Catalyst::Plugin::Session::Store::DBIC>
304
305 =head2 L<Catalyst::Plugin::Session::Store::Dummy>
306
307 =head2 L<Catalyst::Plugin::Session::Store::FastMmap>
308
309 =head2 L<Catalyst::Plugin::Session::Store::File>
310
311 =head2 L<Catalyst::Plugin::Session::Store::Memcached>
312
313 =head2 L<Catalyst::Plugin::Session::Test::Store>
314
315 =head2 L<Catalyst::Plugin::Singleton>
316
317 =head2 L<Catalyst::Plugin::Snippets>
318
319 =head2 L<Catalyst::Plugin::SRU>
320
321 Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
322 and C<searchRetrieve>) from its own class.
323
324 =head2 L<Catalyst::Plugin::StackTrace>
325
326 =head2 L<Catalyst::Plugin::Static>
327
328 L<Catalyst::Plugin::Static> is a plugin to serve static files from
329 C<< $c->config->{root} >>. Intended chiefly for development
330 purposes.
331
332 =head2 L<Catalyst::Plugin::Static::Simple>
333
334 Serves static files in your application without requiring a single line of
335 code. This plugin is now included in the core Catalyst distribution.
336
337 =head2 L<Catalyst::Plugin::SubRequest>
338
339 A plugin to allow subrequests to actions to be made within Catalyst. Nice
340 for portal software and such.
341
342 =head2 L<Catalyst::Plugin::SuperForm>
343
344 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
345 creation.
346
347 =head2 L<Catalyst::Plugin::Textile>
348
349 A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
350 Perl-based implementation of Dean Allen's Textile syntax. Textile is
351 shorthand for doing common formatting tasks (see L<http://textism.com>).
352
353 =head2 L<Catalyst::Plugin::Unicode>
354
355 Provides a Unicode-aware Catalyst. On request, it decodes all params from
356 UTF-8 octets into a sequence of logical characters. On response, it encodes
357 the body into UTF-8 octets.
358
359 =head2 L<Catalyst::Plugin::Unicode::Encoding>
360
361 =head2 L<Catalyst::Plugin::Upload::Basename>
362
363 =head2 L<Catalyst::Plugin::Upload::MD5>
364
365 =head2 L<Catalyst::Plugin::Upload::MIME>
366
367 =head2 L<Catalyst::Plugin::UploadProgress>
368
369 =head2 L<Catalyst::Plugin::XMLRPC>
370
371 Allows your Controller class to dispatch XMLRPC methods from its own class.
372
373 =head1 CONTROLLERS
374
375 =head2 L<Catalyst::Controller::BindLex>
376
377 Lets you mark lexical variables with a C<Stashed> attribute, automatically
378 passing them to the stash.
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::Model::DBIC>
477
478 Replaced by L<Catalyst::Model::DBIC::Schema>.
479
480 =head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
481
482 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
483
484 =head2 L<Catalyst::Plugin::Authentication::CDBI>
485
486 Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
487
488 =head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
489
490 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
491
492 =head2 L<Catalyst::Plugin::Authentication::LDAP>
493
494 Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
495
496 =head2 L<Catalyst::Plugin::Authentication::Simple>
497
498 Replaced by L<Catalyst::Plugin::Authentication>.
499
500 =head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
501
502 =head2 L<Catalyst::Plugin::CDBI::Transaction>
503
504 =head2 Catalyst::Plugin::Config::*
505
506 The L<Catalyst::Plugin::Config::JSON> and
507 L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
508 corresponding L<Catalyst::Plugin::ConfigLoader> modules.
509
510 =head2 L<Catalyst::Plugin::DefaultEnd>
511
512 Replaced by L<Catalyst::Action::RenderView>
513
514 =head2 L<Catalyst::Plugin::SanitizeUrl>
515
516 =head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
517
518 =head2 Catalyst::Plugin::Session::*
519
520 The L<Catalyst::Plugin::Session::CGISession>, 
521 L<Catalyst::Plugin::Session::FastMmap>,
522 L<Catalyst::Plugin::Session::Flex>, and
523 L<Catalyst::Plugin::Session::Manager>
524 modules have been replaced by the <Catalyst::Plugin::Session> framework.
525
526 =head1 AUTHORS
527
528 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
529
530 Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
531
532 Jesse Sheidlower E<lt>jester@panix.comE<gt>
533
534 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
535
536 David Kamholz E<lt>dkamholz@cpan.orgE<gt>
537
538 =head1 COPYRIGHT
539
540 This program is free software, you can redistribute it and/or modify it under
541 the same terms as Perl itself.
542