Moved BindLex to obsolete plugins and added FormFu to Controllers
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Plugins.pod
CommitLineData
cb93c9d7 1=head1 NAME
2
3Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
4
5=head1 DESCRIPTION
6
7This section lists the some of the plugins and components that are
8available to extend the runtime functionality of Catalyst. Most plugins
9are not distributed with Catalyst but should be available from CPAN.
10They typically require additional modules from CPAN.
11
12This list may well be outdated by the time you read this and some
13plugins may be deprecated or now part of core L<Catalyst>. Be sure to
14check the Catalyst::Plugin namespace for additional plugins and consult
15the mailing list ( L<http://dev.catalyst.perl.org/wiki/Support> ) for
16advice on the current status or preferred use of your chosen
17plugin/framework.
18
19=head1 PLUGINS
20
21=head2 L<Catalyst::Plugin::Account::AutoDiscovery>
22
23Provides Account Auto-Discovery for Catalyst.
24
25=head2 L<Catalyst::Plugin::Acme::Scramble>
26
27Implements a potent meme about how easily we can read scrambled text if
28the first and last letters remain constant. Operates on text/plain and
29text/html served by your Catalyst application.
30
31=head2 L<Catalyst::Plugin::Alarm>
32
33=head2 L<Catalyst::Plugin::AtomPP>
34
35Allows you to dispatch AtomPP methods.
36
37=head2 L<Catalyst::Plugin::AtomServer>
38
39A plugin that implements the necessary bits to make it easy to build an
40Atom API server for any Catalyst-based application.
41
42=head2 L<Catalyst::Plugin::Authentication>
43
44An infrastructure plugin for the Catalyst authentication framework. Now the
45recommended way to do any form of Authentication.
46
47=head2 L<Catalyst::Plugin::Authentication::Credential::Atom>
48
49L<Catalyst::Plugin::Authentication::Credential::Atom> is a plugin which
58193af5 50implements WSSE and Basic authentication for Catalyst applications using
cb93c9d7 51L<Catalyst::Plugin::AtomServer>
52
53=head2 L<Catalyst::Plugin::Authentication::Credential::CHAP>
54
55=head2 L<Catalyst::Plugin::Authentication::Credential::Flickr>
56
57Provides 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
63Implements 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
58193af5 71Takes a username (or userid) and a password, and tries various methods of
cb93c9d7 72comparing a password based on what the chosen store's user objects support.
73Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
74
75=head2 L<Catalyst::Plugin::Authentication::Credential::TypeKey>
76
77Integrates L<Authen::TypeKey> with L<Catalyst::Plugin::Authentication>.
78
79=head2 L<Catalyst::Plugin::Authentication::OpenID>
80
58193af5 81L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
82support for OpenID authentication. For more information on OpenID, take
cb93c9d7 83a look at L<http://www.openid.net/>.
84
85=head2 L<Catalyst::Plugin::Authentication::Store>
86
87The core authentication store documentation.
88
89=head2 L<Catalyst::Plugin::Authentication::Store::DBIC>
90
58193af5 91Does authentication and authorization against a L<DBIx::Class> or
cb93c9d7 92L<Class::DBI> model.
93
94=head2 L<Catalyst::Plugin::Authentication::Store::Htpasswd>
95
58193af5 96Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
cb93c9d7 97authentication storage.
98
99=head2 L<Catalyst::Plugin::Authentication::Store::HTTP>
100
101=head2 L<Catalyst::Plugin::Authentication::Store::LDAP>
102
103Authenticates users using an LDAP server.
104
105=head2 L<Catalyst::Plugin::Authentication::Store::Minimal>
106
58193af5 107Lets you create a very quick and dirty user database in your application's
cb93c9d7 108config hash. Great for getting up and running quickly.
109
110=head2 L<Catalyst::Plugin::Authentication::User::Hash>
111
58193af5 112An easy authentication user object based on hashes.
cb93c9d7 113See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
114
115=head2 L<Catalyst::Plugin::Authorization::ACL>
116
58193af5 117This module provides Access Control List style path protection, with arbitrary
118rules for L<Catalyst> applications. It operates only on the Catalyst private
cb93c9d7 119namespace, at least at the moment.
120
121=head2 L<Catalyst::Plugin::Authorization::Roles>
122
58193af5 123L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
124for Catalyst based on L<Catalyst::Plugin::Authentication>.
cb93c9d7 125
126=head2 L<Catalyst::Plugin::AutoSession>
127
128=head2 L<Catalyst::Plugin::Browser>
129
130Extends L<Catalyst::Request> by adding the capability of browser
131detection. It returns an instance of L<HTTP::BrowserDetect>, which lets
132you get information from the client's user agent.
133
134=head2 Catalyst::Plugin::Cache::FastMmap, FileCache, BerkeleyDB, and Memcached
135
136L<Catalyst::Plugin::Cache::FastMmap>,
137L<Catalyst::Plugin::Cache::FileCache>,
138L<Catalyst::Plugin::Cache::BerkeleyDB>, and
139L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
140enabling 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
158Provides a standard method for loading config files. Support
159exists for various formats. See
c010ae0d 160L<Catalyst::Plugin::ConfigLoader::General>
cb93c9d7 161L<Catalyst::Plugin::ConfigLoader::INI>,
162L<Catalyst::Plugin::ConfigLoader::JSON>,
163L<Catalyst::Plugin::ConfigLoader::Perl>,
164L<Catalyst::Plugin::ConfigLoader::XML>, and
165L<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
ed4d8e9d 173=head2 L<Catalyst::Action::RenderView>
cb93c9d7 174
175Creates 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
187Sends 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
197A plugin based on C<HTML::FillInForm>, which describes itself as a module
198to automatically insert data from a previous HTML form into the HTML input,
199textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
200is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
201the values into the form tags.
202
203=head2 L<Catalyst::Plugin::Flavour>
204
205=head2 L<Catalyst::Plugin::FormValidator>
206
207A form validator plugin that uses L<Data::FormValidator> to validate and
208set up form data from your request parameters. It's a quite thin wrapper
209around 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
215Allows you to retrieve various kinds of geographical information. You can
216retrieve the country or code from the current user, from a given IP
217address, 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
229An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
230and 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
242Provides the ability to register AOP-like callbacks to specific Engine
243events. Subclasses L<Class::Publisher>.
244
245=head2 L<Catalyst::Plugin::OrderedParams>
246
247Adjusts the way that parameters operate, causing them to appear in the same
248order they were submitted by the browser. This can be useful for creating
249things such as email forms.
250
251=head2 L<Catalyst::Plugin::PageCache>
252
253Helps improve the performance of slow or frequently accessed pages by
254caching the entire output of your page. Subsequent requests to the page
255will 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
263A plugin for pluggable Catalyst applications.
264
265=head2 L<Catalyst::Plugin::Prototype>
266
267A plugin for the Prototype JavaScript library. This Plugin allows you to
268easily 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
276Use this if you would like to force visitors to access certain pages using
277only SSL mode. An attempt to access the page in non-SSL mode will receive a
278redirect into SSL mode. Useful for login pages, shopping carts, user
279registration forms, and other sensitive data.
280
281=head2 L<Catalyst::Plugin::Scheduler>
282
283=head2 L<Catalyst::Plugin::Session>
284
285The L<Catalyst::Plugin::Session> series of modules provide an easy way to
286include session handling in an application. You can choose from several
287different backend storage methods and combine that with your choice of
288client-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
322Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
323and C<searchRetrieve>) from its own class.
324
325=head2 L<Catalyst::Plugin::StackTrace>
326
327=head2 L<Catalyst::Plugin::Static>
328
329L<Catalyst::Plugin::Static> is a plugin to serve static files from
330C<< $c->config->{root} >>. Intended chiefly for development
331purposes.
332
333=head2 L<Catalyst::Plugin::Static::Simple>
334
335Serves static files in your application without requiring a single line of
336code. This plugin is now included in the core Catalyst distribution.
337
338=head2 L<Catalyst::Plugin::SubRequest>
339
340A plugin to allow subrequests to actions to be made within Catalyst. Nice
341for portal software and such.
342
343=head2 L<Catalyst::Plugin::SuperForm>
344
345An interface to the L<HTML::SuperForm> module, enabling easy HTML form
346creation.
347
348=head2 L<Catalyst::Plugin::Textile>
349
350A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
351Perl-based implementation of Dean Allen's Textile syntax. Textile is
352shorthand for doing common formatting tasks (see L<http://textism.com>).
353
354=head2 L<Catalyst::Plugin::Unicode>
355
356Provides a Unicode-aware Catalyst. On request, it decodes all params from
357UTF-8 octets into a sequence of logical characters. On response, it encodes
358the 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
372Allows your Controller class to dispatch XMLRPC methods from its own class.
373
374=head1 CONTROLLERS
375
58193af5 376=head2 L<Catalyst::Controller::HTML::FormFu>
cb93c9d7 377
58193af5 378Catalyst integration for <HTML::FormFu>.
cb93c9d7 379
380=head1 MODELS
381
382=head2 L<Catalyst::Model::CDBI>
383
384The C<Class::DBI> (CDBI) model class. It is built on top of
385C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
386sub-classes by scanning the underlying table schemas, setting up columns
387and primary keys.
388
389=head2 L<Catalyst::Model::CDBI::Plain>
390
391A neutral interface to the C<Class::DBI> module which does not attempt
392to automate table setup. It allows the user to manually set up
393C<Class::DBI> classes, either by doing so within the Catalyst model
394classes themselves, or by inheriting from existing C<Class::DBI>
395classes.
396
397=head2 L<Catalyst::Model::DBIC::Schema>
398
399A L<DBIx::Class> model class that can use either an explicit
400L<DBIx::Class::Schema> or one automatically loaded from your database
401via 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
415A 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
423A 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
441A 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
449A 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
457A view component for rendering pages using PSP, a Perl extension
458implementing a JSP-like templating system. See L<Text::PSP>.
459
460=head2 L<Catalyst::View::Petal>
461
462A view component for rendering pages using Petal, the Perl Template
463Attribute Language, an XML-based templating system. See L<Petal>.
464
465=head2 L<Catalyst::View::TT>
466
467A view component for rendering pages with Template Toolkit. See
468L<Template::Manual>.
469
470=head2 L<Catalyst::View::XSLT>
471
472=head2 L<Catalyst::View::vCard>
473
474=head1 OBSOLETE MODULES
475
58193af5 476=head2 L<Catalyst::Controller::BindLex>
477
478Lets you mark lexical variables with a C<Stashed> attribute, automatically
479passing them to the stash. Discouraged by the author.
480
cb93c9d7 481=head2 L<Catalyst::Model::DBIC>
482
483Replaced by L<Catalyst::Model::DBIC::Schema>.
484
485=head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
486
487Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
488
489=head2 L<Catalyst::Plugin::Authentication::CDBI>
490
491Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
492
493=head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
494
495Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
496
497=head2 L<Catalyst::Plugin::Authentication::LDAP>
498
499Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
500
501=head2 L<Catalyst::Plugin::Authentication::Simple>
502
503Replaced 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
511The L<Catalyst::Plugin::Config::JSON> and
512L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
513corresponding L<Catalyst::Plugin::ConfigLoader> modules.
514
515=head2 L<Catalyst::Plugin::DefaultEnd>
516
517Replaced 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
58193af5 525The L<Catalyst::Plugin::Session::CGISession>,
cb93c9d7 526L<Catalyst::Plugin::Session::FastMmap>,
527L<Catalyst::Plugin::Session::Flex>, and
528L<Catalyst::Plugin::Session::Manager>
529modules have been replaced by the <Catalyst::Plugin::Session> framework.
530
531=head1 AUTHORS
532
533Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
534
535Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
536
537Jesse Sheidlower E<lt>jester@panix.comE<gt>
538
539Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
540
541David Kamholz E<lt>dkamholz@cpan.orgE<gt>
542
543=head1 COPYRIGHT
544
545This program is free software, you can redistribute it and/or modify it under
546the same terms as Perl itself.