fixup POD to only mention DBIC::Schema model, not DBIC
[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
b248fa4a 22L<Catalyst::Plugin::Account::AutoDiscovery> provides Account Auto-Discovery
b89fe2dd 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
b248fa4a 67L<Catalyst::Plugin::AtomServer>
b89fe2dd 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
a43b7864 95to authenticate your web users using an LDAP server. Replaced
b89fe2dd 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
b248fa4a 106Replaced by new L<Catalyst::Plugin::Authentication> framework
b89fe2dd 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
a43b7864 124=head2 Catalyst::Plugin::Authentication::Store::LDAP
125
126L<Catalyst::Plugin::Authentication::Store::LDAP> the new LDAP store. Use this
127instead of L<Catalyst::Plugin::Authentication::LDAP>
128
b89fe2dd 129=head2 Catalyst::Plugin::Authentication::Store::Minimal
130
131L<Catalyst::Plugin::Authentication::Store::Minimal> lets you create a very
132quick and dirty user database in your application's config hash.
133Great for getting up and running quickly.
134
135=head2 Catalyst::Plugin::Authentication::User::Hash
136
137L<Catalyst::Plugin::Authentication::User::Hash> is an easy authentication
138user object based on hashes.
139See L<Catalyst::Plugin::Authentication::Store::Minimal> for more info.
140
141=head2 Catalyst::Plugin::Authorization::ACL
142
a43b7864 143L<Catalyst::Plugin::Authorization::ACL> This module provides Access Control
144List style path protection, with arbitrary rules for L<Catalyst> applications.
145It operates only on the Catalyst private namespace, at least at the moment.
b89fe2dd 146
147=head2 Catalyst::Plugin::Authorization::CDBI::GroupToken
148
a43b7864 149No longer on the CPAN
b89fe2dd 150
151=head2 Catalyst::Plugin::Authorization::Roles
152
153L<Catalyst::Plugin::Authorization::Roles> provides role based authorization
154for Catalyst based on L<Catalyst::Plugin::Authentication>.
c42f5bbf 155
c42f5bbf 156=head2 Catalyst::Plugin::Browser
157
158L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
159capability of browser detection. It returns an instance of
160L<HTTP::BrowserDetect>, which lets you get information from the client's
161user agent.
162
4427ee06 163=head2 Catalyst::Plugin::Cache::FastMmap, FileCache, and Memcached
164
24d0c6d2 165L<Catalyst::Plugin::Cache::FastMmap>,
166L<Catalyst::Plugin::Cache::FileCache>, and
167L<Catalyst::Plugin::Cache::Memcached> all provide a cache method
168enabling easy access to a shared cache.
4427ee06 169
b89fe2dd 170=head2 Catalyst::Plugin::CDBI::Transaction
171
172
173=head2 Catalyst::Plugin::Charsets::Japanese
c42f5bbf 174
c42f5bbf 175
176=head2 Catalyst::Plugin::Compress::Bzip2
177
178L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
179bzip compression.
180
b89fe2dd 181=head2 Catalyst::Plugin::Compress::Deflate
182
183
184=head2 Catalyst::Plugin::Compress::Gzip
185
186
187=head2 Catalyst::Plugin::Compress::Zlib
188
189L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
190Catalyst.
191
192=head2 Catalyst::Plugin::Config::JSON
193
194
195=head2 Catalyst::Plugin::ConfigLoader
196
197
198=head2 Catalyst::Plugin::ConfigLoader::INI
199
200
201=head2 Catalyst::Plugin::ConfigLoader::JSON
202
203
204=head2 Catalyst::Plugin::ConfigLoader::Perl
205
206
207=head2 Catalyst::Plugin::ConfigLoader::XML
208
209
210=head2 Catalyst::Plugin::ConfigLoader::YAML
211
212
213=head2 Catalyst::Plugin::Config::YAML
214
215
216=head2 Catalyst::Plugin::DateTime
217
218
4427ee06 219=head2 Catalyst::Plugin::DefaultEnd
220
24d0c6d2 221L<Catalyst::Plugin::DefaultEnd> creates a sane, standard end method for
222your application.
4427ee06 223
b89fe2dd 224=head2 Catalyst::Plugin::Devel::InPageLogs
225
226
227=head2 Catalyst::Plugin::Devel::InPageLogs::Log
228
229
230=head2 Catalyst::Plugin::Dumper
231
232
4427ee06 233=head2 Catalyst::Plugin::Email
234
235L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
236and L<Email::MIME::Creator>.
237
b89fe2dd 238=head2 Catalyst::Plugin::Email::Japanese
239
240
241=head2 Catalyst::Plugin::Email::Page
242
243
244=head2 Catalyst::Plugin::EmailValid
245
246
83b9e3a9 247=head2 Catalyst::Plugin::FillInForm
248
35e6ab34 249L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
250C<HTML::FillInForm>, which describes itself as a module to automatically
251insert data from a previous HTML form into the HTML input, textarea,
252radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
253subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
254values into the form tags.
83b9e3a9 255
b89fe2dd 256=head2 Catalyst::Plugin::Flavour
257
258
83b9e3a9 259=head2 Catalyst::Plugin::FormValidator
260
35e6ab34 261L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
262L<Data::FormValidator> to validate and set up form data from your
24d0c6d2 263request parameters. It's a quite thin wrapper around that module, so
35e6ab34 264most of the relevant information can be found there.
83b9e3a9 265
b89fe2dd 266=head2 Catalyst::Plugin::FormValidator::Simple
267
268
c42f5bbf 269=head2 Catalyst::Plugin::Geography
270
271L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
272of geographical information. You can retrieve the country or code from
273the current user, from a given IP address, or from a given hostname.
83b9e3a9 274
b89fe2dd 275=head2 Catalyst::Plugin::Geography::Implementation
276
277
278=head2 Catalyst::Plugin::HashedCookies
279
280
281=head2 Catalyst::Plugin::HTML::Scrubber
282
283
284=head2 Catalyst::Plugin::HTML::Widget
285
286
83b9e3a9 287=head2 Catalyst::Plugin::I18N
288
35e6ab34 289L<Catalyst::Plugin::I18N> is an internationalization plugin for
290Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
291application's I18N namespace.
83b9e3a9 292
b89fe2dd 293=head2 Catalyst::Plugin::JSONRPC
294
295
296=head2 Catalyst::Plugin::Message
297
298
299=head2 Catalyst::Plugin::MobileAgent
300
301
62d40b4c 302=head2 Catalyst::Plugin::Observe
303
304L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
305callbacks to specific Engine events. Subclasses L<Class::Publisher>.
306
4427ee06 307=head2 Catalyst::Plugin::OrderedParams
308
309L<Catalyst::Plugin::OrderedParams> adjusts the way that parameters operate,
310causing them to appear in the same order they were submitted by the browser.
311This can be useful for creating things such as email forms.
312
c74caf1d 313=head2 Catalyst::Plugin::PageCache
314
315L<Catalyst::Plugin::PageCache> helps improve the performance of slow or
316frequently accessed pages by caching the entire output of your page.
317Subsequent requests to the page will receive the page very quickly from
4427ee06 318cache.
c74caf1d 319
b89fe2dd 320=head2 Catalyst::Plugin::Params::Nested
321
322
323=head2 Catalyst::Plugin::Params::Nested::Expander
324
325
83b9e3a9 326=head2 Catalyst::Plugin::Pluggable
327
35e6ab34 328L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
329applications.
83b9e3a9 330
331=head2 Catalyst::Plugin::Prototype
332
35e6ab34 333L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
334library. This Plugin allows you to easily implement AJAX functionality
335without actually knowing Javascript.
83b9e3a9 336
b89fe2dd 337=head2 Catalyst::Plugin::Redirect
338
339
340=head2 Catalyst::Plugin::RequestToken
341
342
c74caf1d 343=head2 Catalyst::Plugin::RequireSSL
344
345Use L<Catalyst::Plugin::RequireSSL> if you would like to force visitors
346to access certain pages using only SSL mode. An attempt to access the
347page in non-SSL mode will receive a redirect into SSL mode. Useful for
24d0c6d2 348login pages, shopping carts, user registration forms, and other
349sensitive data.
c74caf1d 350
b89fe2dd 351=head2 Catalyst::Plugin::SanitizeUrl
352
353
354=head2 Catalyst::Plugin::SanitizeUrl::PrepAction
355
356
357=head2 Catalyst::Plugin::Scheduler
358
359
4427ee06 360=head2 Catalyst::Plugin::Session
361
362The L<Catalyst::Plugin::Session> series of modules provide an easy way to
24d0c6d2 363include session handling in an application. You can choose from several
4427ee06 364different backend storage methods and combine that with your choice of
365client-side storage methods.
366
b89fe2dd 367=head2 Catalyst::Plugin::Session::CGISession
368
369
83b9e3a9 370=head2 Catalyst::Plugin::Session::FastMmap
371
35e6ab34 372L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
373based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
24d0c6d2 374shared memory interprocess cache. This is an older session plugin; you may
4427ee06 375wish to look at L<Catalyst::Plugin::Session> instead.
83b9e3a9 376
b89fe2dd 377=head2 Catalyst::Plugin::Session::Flex
378
379
380=head2 Catalyst::Plugin::Session::Manager
381
382
383=head2 Catalyst::Plugin::Session::Manager::Client::Cookie
384
385
386=head2 Catalyst::Plugin::Session::Manager::Client::Rewrite
387
388
389=head2 Catalyst::Plugin::Session::Manager::Client::StickyQuery
390
391
392=head2 Catalyst::Plugin::Session::Manager::Storage::CDBI
393
394
395=head2 Catalyst::Plugin::Session::Manager::Storage::FastMmap
396
397
398=head2 Catalyst::Plugin::Session::Manager::Storage::File
399
400
401=head2 Catalyst::Plugin::Session::PerUser
402
403
404=head2 Catalyst::Plugin::Session::State
405
406
407=head2 Catalyst::Plugin::Session::State::Cookie
408
409
410=head2 Catalyst::Plugin::Session::State::URI
411
412
413=head2 Catalyst::Plugin::Session::Store
414
415
416=head2 Catalyst::Plugin::Session::Store::CDBI
417
418
419=head2 Catalyst::Plugin::Session::Store::DBI
420
421
422=head2 Catalyst::Plugin::Session::Store::Dummy
423
424
425=head2 Catalyst::Plugin::Session::Store::FastMmap
426
427
428=head2 Catalyst::Plugin::Session::Store::File
429
430
431=head2 Catalyst::Plugin::Session::Store::Memcached
432
433
434=head2 Catalyst::Plugin::Session::Test::Store
435
436
437=head2 Catalyst::Plugin::Singleton
438
439
4427ee06 440=head2 Catalyst::Plugin::SRU
441
442L<Catalyst::Plugin::SRU> allows your controller class to dispatch SRU
443actions (C<explain>, C<scan>, and C<searchRetrieve>) from its own class.
e8af4edb 444
b89fe2dd 445=head2 Catalyst::Plugin::StackTrace
4427ee06 446
83b9e3a9 447
448=head2 Catalyst::Plugin::Static
449
c74caf1d 450L<Catalyst::Plugin::Static> is a plugin to serve static files from
451C<$c-E<gt>config-E<gt>{root}>. Intended chiefly for development
452purposes.
83b9e3a9 453
b89fe2dd 454=head2 Catalyst::Plugin::Static::Simple
455
456L<Catalyst::Plugin::Static::Simple> serves static files in your
457application without requiring a single line of code. This plugin is now
458included in the core Catalyst distribution.
459
665dadd4 460=head2 Catalyst::Plugin::SubRequest
461
35e6ab34 462L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
24d0c6d2 463actions to be made within Catalyst. Nice for portal software and such.
665dadd4 464
4427ee06 465=head2 Catalyst::Plugin::SuperForm
466
467L<Catalyst::Plugin::SuperForm> is an interface to the L<HTML::SuperForm>
468module, enabling easy HTML form creation.
469
83b9e3a9 470=head2 Catalyst::Plugin::Textile
471
35e6ab34 472L<Catalyst::Plugin::Textile> is a persistent Textile processor for
473Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
474Allen's Textile syntax. Textile is shorthand for doing common formatting
475tasks (see L<http://textism.com>).
83b9e3a9 476
c42f5bbf 477=head2 Catalyst::Plugin::Unicode
478
479L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
480request, it decodes all params from UTF-8 octets into a sequence of
481logical characters. On response, it encodes the body into UTF-8 octets.
83b9e3a9 482
b89fe2dd 483=head2 Catalyst::Plugin::Unicode::Encoding
484
485
486=head2 Catalyst::Plugin::Upload::Basename
487
488
489=head2 Catalyst::Plugin::Upload::MD5
490
491
492=head2 Catalyst::Plugin::Upload::MIME
493
494
83b9e3a9 495=head2 Catalyst::Plugin::XMLRPC
496
35e6ab34 497L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
498dispatch XMLRPC methods from its own class.
83b9e3a9 499
83b9e3a9 500=head1 COMPONENT MODULES
501
502=head2 Catalyst::Model::CDBI
503
35e6ab34 504L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
4911f47a 505is built on top of C<Class::DBI::Loader>, which automates the
506definition of C<Class::DBI> sub-classes by scanning the underlying
507table schemas, setting up columns and primary keys.
83b9e3a9 508
386777dc 509=head2 Catalyst::Model::CDBI::Plain
510
511L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
512C<Class::DBI> module, which does not attempt to automate table
513setup. It allows the user to manually set up C<Class::DBI>
514classes, either by doing so within the Catalyst model classes
515themselves, or by inheriting from existing C<Class::DBI>
516classes.
517
60fa95ba 518=head2 Catalyst::Model::DBIC::Schema
83b9e3a9 519
60fa95ba 520L<Catalyst::Model::DBIC::Schema> is a L<DBIx::Class> model class that can
521use either an explicit DBIx::Class::Schema or one automatically loaded from
522your database via DBIx::Class::Schema::Loader
83b9e3a9 523
c42f5bbf 524=head2 Catalyst::Model::Plucene
4427ee06 525
24d0c6d2 526L<Catalyst::Model::Plucene> is a model class for the Plucene search
527engine.
4427ee06 528
529=head2 Catalyst::Model::Xapian
530
24d0c6d2 531L<Catalyst::Model::Xapian> is a model class for the Xapian search
532engine.
83b9e3a9 533
c42f5bbf 534=head2 Catalyst::View::HTML::Template
83b9e3a9 535
c42f5bbf 536L<Catalyst::View::HTML::Template> is a View component for
537displaying your stash with L<HTML::Template>.
538
4427ee06 539=head2 Catalyst::View::Mason
540
541L<Catalyst::View::Mason> is a View component for displaying your stash
542with L<HTML::Mason>.
543
c42f5bbf 544=head2 Catalyst::View::PSP
545
24d0c6d2 546L<Catalyst::View::PSP> is a View component for displaying your stash
547using PSP, a Perl extension implementing a JSP-like templating system;
548see L<Text::PSP>.
c42f5bbf 549
550=head2 Catalyst::View::Petal
4427ee06 551
c42f5bbf 552L<Catalyst::View::Petal> is a View component for displaying
553your stash using Petal, the Perl Template Attribute Language,
554an XML-based templating system; see L<Petal>.
83b9e3a9 555
c42f5bbf 556=head2 Catalyst::View::TT
557
4427ee06 558L<Catalyst::View::TT> is a Template Toolkit view. See L<Template::Manual>.
83b9e3a9 559
4427ee06 560=head1 AUTHORS
83b9e3a9 561
562Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
4427ee06 563
a43b7864 564Gavin Henry E<lt>ghenry@suretecsystems.comE<gt>
4427ee06 565
c42f5bbf 566Jesse Sheidlower E<lt>jester@panix.comE<gt>
83b9e3a9 567
b89fe2dd 568Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
569
83b9e3a9 570=head1 COPYRIGHT
571
572This program is free software, you can redistribute it and/or modify it under
573the same terms as Perl itself.
b89fe2dd 574
575