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