Fix minor typo
[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
50implements WSSE and Basic authentication for Catalyst applications using
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
71Takes a username (or userid) and a password, and tries various methods of
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
81L<Catalyst::Plugin::Authentication::OpenID> is a plugin that implements
82support for OpenID authentication. For more information on OpenID, take
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
91Does authentication and authorization against a L<DBIx::Class> or
92L<Class::DBI> model.
93
94=head2 L<Catalyst::Plugin::Authentication::Store::Htpasswd>
95
96Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files for its
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
107Lets you create a very quick and dirty user database in your application's
108config hash. Great for getting up and running quickly.
109
110=head2 L<Catalyst::Plugin::Authentication::User::Hash>
111
112An easy authentication user object based on hashes.
113See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
114
115=head2 L<Catalyst::Plugin::Authorization::ACL>
116
117This module provides Access Control List style path protection, with arbitrary
118rules for L<Catalyst> applications. It operates only on the Catalyst private
119namespace, at least at the moment.
120
121=head2 L<Catalyst::Plugin::Authorization::Roles>
122
123L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
124for Catalyst based on L<Catalyst::Plugin::Authentication>.
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
376=head2 L<Catalyst::Controller::BindLex>
377
378Lets you mark lexical variables with a C<Stashed> attribute, automatically
379passing them to the stash.
380
381=head1 MODELS
382
383=head2 L<Catalyst::Model::CDBI>
384
385The C<Class::DBI> (CDBI) model class. It is built on top of
386C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
387sub-classes by scanning the underlying table schemas, setting up columns
388and primary keys.
389
390=head2 L<Catalyst::Model::CDBI::Plain>
391
392A neutral interface to the C<Class::DBI> module which does not attempt
393to automate table setup. It allows the user to manually set up
394C<Class::DBI> classes, either by doing so within the Catalyst model
395classes themselves, or by inheriting from existing C<Class::DBI>
396classes.
397
398=head2 L<Catalyst::Model::DBIC::Schema>
399
400A L<DBIx::Class> model class that can use either an explicit
401L<DBIx::Class::Schema> or one automatically loaded from your database
402via L<DBIx::Class::Schema::Loader>.
403
404=head2 L<Catalyst::Model::EVDB>
405
406=head2 L<Catalyst::Model::File>
407
408=head2 L<Catalyst::Model::Gedcom>
409
410=head2 L<Catalyst::Model::LDAP>
411
412=head2 L<Catalyst::Model::NetBlogger>
413
414=head2 L<Catalyst::Model::Plucene>
415
416A model class for the Plucene search engine.
417
418=head2 L<Catalyst::Model::Proxy>
419
420=head2 L<Catalyst::Model::SVN>
421
422=head2 L<Catalyst::Model::Xapian>
423
424A model class for the Xapian search engine.
425
426=head1 VIEWS
427
428=head2 L<Catalyst::View::Atom::XML>
429
430=head2 L<Catalyst::View::Chart::Strip>
431
432=head2 L<Catalyst::View::CSS::Squish>
433
434=head2 L<Catalyst::View::Embperl>
435
436=head2 L<Catalyst::View::GD::Barcode>
437
438=head2 L<Catalyst::View::GraphViz>
439
440=head2 L<Catalyst::View::HTML::Template>
441
442A view component for rendering pages with L<HTML::Template>.
443
444=head2 L<Catalyst::View::Jemplate>
445
446=head2 L<Catalyst::View::JSON>
447
448=head2 L<Catalyst::View::Mason>
449
450A view component for rendering pages with L<HTML::Mason>.
451
452=head2 L<Catalyst::View::MicroMason>
453
454=head2 L<Catalyst::View::PHP>
455
456=head2 L<Catalyst::View::PSP>
457
458A view component for rendering pages using PSP, a Perl extension
459implementing a JSP-like templating system. See L<Text::PSP>.
460
461=head2 L<Catalyst::View::Petal>
462
463A view component for rendering pages using Petal, the Perl Template
464Attribute Language, an XML-based templating system. See L<Petal>.
465
466=head2 L<Catalyst::View::TT>
467
468A view component for rendering pages with Template Toolkit. See
469L<Template::Manual>.
470
471=head2 L<Catalyst::View::XSLT>
472
473=head2 L<Catalyst::View::vCard>
474
475=head1 OBSOLETE MODULES
476
477=head2 L<Catalyst::Model::DBIC>
478
479Replaced by L<Catalyst::Model::DBIC::Schema>.
480
481=head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
482
483Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
484
485=head2 L<Catalyst::Plugin::Authentication::CDBI>
486
487Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
488
489=head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
490
491Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
492
493=head2 L<Catalyst::Plugin::Authentication::LDAP>
494
495Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
496
497=head2 L<Catalyst::Plugin::Authentication::Simple>
498
499Replaced by L<Catalyst::Plugin::Authentication>.
500
501=head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
502
503=head2 L<Catalyst::Plugin::CDBI::Transaction>
504
505=head2 Catalyst::Plugin::Config::*
506
507The L<Catalyst::Plugin::Config::JSON> and
508L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
509corresponding L<Catalyst::Plugin::ConfigLoader> modules.
510
511=head2 L<Catalyst::Plugin::DefaultEnd>
512
513Replaced by L<Catalyst::Action::RenderView>
514
515=head2 L<Catalyst::Plugin::SanitizeUrl>
516
517=head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
518
519=head2 Catalyst::Plugin::Session::*
520
521The L<Catalyst::Plugin::Session::CGISession>,
522L<Catalyst::Plugin::Session::FastMmap>,
523L<Catalyst::Plugin::Session::Flex>, and
524L<Catalyst::Plugin::Session::Manager>
525modules have been replaced by the <Catalyst::Plugin::Session> framework.
526
527=head1 AUTHORS
528
529Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
530
531Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
532
533Jesse Sheidlower E<lt>jester@panix.comE<gt>
534
535Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
536
537David Kamholz E<lt>dkamholz@cpan.orgE<gt>
538
539=head1 COPYRIGHT
540
541This program is free software, you can redistribute it and/or modify it under
542the same terms as Perl itself.
543