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