Rework tutorial. Lots of things changed, but key items include: new content in Catal...
[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
160L<Catalyst::Plugin::ConfigLoader::INI>,
161L<Catalyst::Plugin::ConfigLoader::JSON>,
162L<Catalyst::Plugin::ConfigLoader::Perl>,
163L<Catalyst::Plugin::ConfigLoader::XML>, and
164L<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
ed4d8e9d 172=head2 L<Catalyst::Action::RenderView>
cb93c9d7 173
174Creates 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
186Sends 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
196A plugin based on C<HTML::FillInForm>, which describes itself as a module
197to automatically insert data from a previous HTML form into the HTML input,
198textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
199is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
200the values into the form tags.
201
202=head2 L<Catalyst::Plugin::Flavour>
203
204=head2 L<Catalyst::Plugin::FormValidator>
205
206A form validator plugin that uses L<Data::FormValidator> to validate and
207set up form data from your request parameters. It's a quite thin wrapper
208around 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
214Allows you to retrieve various kinds of geographical information. You can
215retrieve the country or code from the current user, from a given IP
216address, 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
228An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
229and 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
241Provides the ability to register AOP-like callbacks to specific Engine
242events. Subclasses L<Class::Publisher>.
243
244=head2 L<Catalyst::Plugin::OrderedParams>
245
246Adjusts the way that parameters operate, causing them to appear in the same
247order they were submitted by the browser. This can be useful for creating
248things such as email forms.
249
250=head2 L<Catalyst::Plugin::PageCache>
251
252Helps improve the performance of slow or frequently accessed pages by
253caching the entire output of your page. Subsequent requests to the page
254will 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
262A plugin for pluggable Catalyst applications.
263
264=head2 L<Catalyst::Plugin::Prototype>
265
266A plugin for the Prototype JavaScript library. This Plugin allows you to
267easily 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
275Use this if you would like to force visitors to access certain pages using
276only SSL mode. An attempt to access the page in non-SSL mode will receive a
277redirect into SSL mode. Useful for login pages, shopping carts, user
278registration forms, and other sensitive data.
279
280=head2 L<Catalyst::Plugin::Scheduler>
281
282=head2 L<Catalyst::Plugin::Session>
283
284The L<Catalyst::Plugin::Session> series of modules provide an easy way to
285include session handling in an application. You can choose from several
286different backend storage methods and combine that with your choice of
287client-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
321Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
322and C<searchRetrieve>) from its own class.
323
324=head2 L<Catalyst::Plugin::StackTrace>
325
326=head2 L<Catalyst::Plugin::Static>
327
328L<Catalyst::Plugin::Static> is a plugin to serve static files from
329C<< $c->config->{root} >>. Intended chiefly for development
330purposes.
331
332=head2 L<Catalyst::Plugin::Static::Simple>
333
334Serves static files in your application without requiring a single line of
335code. This plugin is now included in the core Catalyst distribution.
336
337=head2 L<Catalyst::Plugin::SubRequest>
338
339A plugin to allow subrequests to actions to be made within Catalyst. Nice
340for portal software and such.
341
342=head2 L<Catalyst::Plugin::SuperForm>
343
344An interface to the L<HTML::SuperForm> module, enabling easy HTML form
345creation.
346
347=head2 L<Catalyst::Plugin::Textile>
348
349A persistent Textile processor for Catalyst that uses C<Text::Textile>, a
350Perl-based implementation of Dean Allen's Textile syntax. Textile is
351shorthand for doing common formatting tasks (see L<http://textism.com>).
352
353=head2 L<Catalyst::Plugin::Unicode>
354
355Provides a Unicode-aware Catalyst. On request, it decodes all params from
356UTF-8 octets into a sequence of logical characters. On response, it encodes
357the 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
371Allows your Controller class to dispatch XMLRPC methods from its own class.
372
373=head1 CONTROLLERS
374
375=head2 L<Catalyst::Controller::BindLex>
376
377Lets you mark lexical variables with a C<Stashed> attribute, automatically
378passing them to the stash.
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
476=head2 L<Catalyst::Model::DBIC>
477
478Replaced by L<Catalyst::Model::DBIC::Schema>.
479
480=head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
481
482Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
483
484=head2 L<Catalyst::Plugin::Authentication::CDBI>
485
486Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
487
488=head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
489
490Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
491
492=head2 L<Catalyst::Plugin::Authentication::LDAP>
493
494Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
495
496=head2 L<Catalyst::Plugin::Authentication::Simple>
497
498Replaced 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
506The L<Catalyst::Plugin::Config::JSON> and
507L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
508corresponding L<Catalyst::Plugin::ConfigLoader> modules.
509
510=head2 L<Catalyst::Plugin::DefaultEnd>
511
512Replaced 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
520The L<Catalyst::Plugin::Session::CGISession>,
521L<Catalyst::Plugin::Session::FastMmap>,
522L<Catalyst::Plugin::Session::Flex>, and
523L<Catalyst::Plugin::Session::Manager>
524modules have been replaced by the <Catalyst::Plugin::Session> framework.
525
526=head1 AUTHORS
527
528Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
529
530Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
531
532Jesse Sheidlower E<lt>jester@panix.comE<gt>
533
534Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
535
536David Kamholz E<lt>dkamholz@cpan.orgE<gt>
537
538=head1 COPYRIGHT
539
540This program is free software, you can redistribute it and/or modify it under
541the same terms as Perl itself.
542