Fix unicode plugin docs in -Manual
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Components.pod
1 =head1 NAME
2
3 Catalyst::Manual::Component - Reuseable components for Catalyst applications
4
5 =head1 DESCRIPTION
6
7 This section lists the some of the components (and plugins) that are
8 available to extend the runtime functionality of Catalyst. Most components
9 are not distributed with Catalyst but should be available from CPAN.
10 They typically require additional modules from CPAN.
11
12 This list may well be outdated by the time you read this, and some
13 plugins may be deprecated, or, conversely, may now part of core
14 L<Catalyst>. Be sure to check the Catalyst:: and CatalystX:: namespaces
15 for additional components, and consult the mailing list (
16 L<http://dev.catalyst.perl.org/wiki/Support> ) for advice on the current
17 status or preferred use of your chosen plugin/framework.
18
19 =head1 PLUGINS
20
21 =head2 L<Catalyst::Plugin::Account::AutoDiscovery>
22
23 Provides Account Auto-Discovery for Catalyst.
24
25 =head2 L<Catalyst::Plugin::Acme::Scramble>
26
27 Implements a potent meme about how easily we can read scrambled text if
28 the first and last letters remain constant. Operates on text/plain and
29 text/html served by your Catalyst application.
30
31 =head2 L<Catalyst::Plugin::Alarm>
32
33 =head2 L<Catalyst::Plugin::AtomPP>
34
35 Allows you to dispatch AtomPP methods.
36
37 =head2 L<Catalyst::Plugin::AtomServer>
38
39 A plugin that implements the necessary bits to make it easy to build an
40 Atom API server for any Catalyst-based application.
41
42 =head2 L<Catalyst::Plugin::Authentication>
43
44 An infrastructure plugin for the Catalyst authentication framework. Now the
45 recommended way to do any form of Authentication.
46
47 Note that newer versions of the authentication plugin allow multiple
48 C<realms>, so that you can authenticate users in different ways in different
49 parts of your application.
50
51 This, however, has involved deprecated all classes in the
52 C<Catalyst::Plugin::Authentication::Credential::XXX> and
53 C<Catalyst::Plugin::Authentication::Store::XXX> namespaces.
54
55 These plugins are still usable, but they have mostly been replaced with
56 new modules in the new namespace which will work together.
57
58 =head3 Available Credential modules:
59
60 =head4 L<Catalyst::Authentication::Credential::AuthTkt>
61
62 Allows you to use the L<Apache::AuthTkt> module with Catalyst.
63
64 =head4 L<Catalyst::Authentication::Credential::FBConnect>
65
66 Allows you to authenticate Facebook users using the FBConnect API.
67
68 =head4 L<Catalyst::Authentication::Credential::Flickr>
69
70 Provides authentication via Flickr, using its API.
71
72 =head4 L<Catalyst::Authentication::Credential::HTTP>
73
74 Allows you to authenticate users using HTTP Basic or Digest authentication.
75
76 =head4 L<Catalyst::Authentication::Credential::HTTP::Proxy>
77
78 Allows you to authenticate users against a remote web server
79 offering HTTP authentication.
80
81 =head4 L<Catalyst::Authentication::Credential::Kerberos>
82
83 Allows you to authenticate your users against a Kerberos server.
84
85 =head4 L<Catalyst::Authentication::Credential::OAuth>
86
87 Allows you to authenticate users using their login on other websites
88 supporting the OAuth protocol.
89
90 =head4 L<Catalyst::Authentication::Credential::OpenID>
91
92 Allows you to authenticate users using their login on other websites
93 supporting the OpenID protocol.
94
95 =head4 L<Catalyst::Authentication::Credential::Password>
96
97 Takes a username (or userid) and a password, and tries various methods of
98 comparing a password based on what the chosen store's user objects support.
99 Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.
100
101 =head4 L<Catalyst::Authentication::Credential::RPX>
102
103 Allows you to authenticate users using the RPX protocol.
104
105 =head4 L<Catalyst::Authentication::Credential::Remote>
106
107 Allows you to authenticate users in Catalyst that have already been
108 authenticated by your web server. This is useful for authenticating
109 users with SSL Client certificates, and using NTLM or any other
110 authentication protocol natively supported by your web server.
111
112 =head4 L<Catalyst::Authentication::Credential::Testing>
113
114 Allows you to set the same password for all users, which is useful when
115 you want to test logging in as multiple users or multiple types of user,
116 without having to mock things, or set all users' passwords in your test
117 suite.
118
119 =head4 L<Catalyst::Authentication::Credential::Authen::Simple>
120
121 Allows any of the L<Authen::Simple> family of modules to be used
122 to authenticate users in Catalyst.
123
124 =head3 Available Store modules:
125
126 =head4 L<Catalyst::Authentication::Store::DBIx::Class>
127
128 Does authentication and authorization against a L<DBIx::Class> model.
129
130 =head4 L<Catalyst::Authentication::Store::Htpasswd>
131
132 Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files
133 for its authentication storage.
134
135 =head4 L<Catalyst::Authentication::Store::AuthTkt>
136
137 This module implements the Catalyst::Authentication API for L<Apache::AuthTkt>.
138
139 =head4 L<Catalyst::Authentication::Store::DBI>
140
141 Allows you to use a plain L<DBI> database connection to identify users. 
142
143 =head4 L<Catalyst::Authentication::Store::Htpasswd>
144
145 Allows you to use an Apache htpasswd type file to authenticate users.
146
147 =head4 L<Catalyst::Authentication::Store::KiokuDB>
148
149 Authenticate users stored as objects in the L<KiokuDB> object graph
150 storage engine system.
151
152 =head4 L<Catalyst::Authentication::Store::LDAP>
153
154 Authenticates users using an LDAP server.
155
156 =head4 L<Catalyst::Authentication::Store::Minimal>
157
158 Lets you create a very quick and dirty user database in your application's
159 config hash. Great for getting up and running quickly.
160
161 =head4 L<Catalyst::Authentication::Store::Null>
162
163 The Null store is a transparent store where any supplied user data is
164 accepted.  This is mainly useful for remotely authenticating credentials
165 (e.g. OpenID) which may not be tied to any local storage.
166
167 =head4 L<Catalyst::Authentication::Store::RDBO>
168
169 Allows access to authentication information stored in a database via a L<Rose::DB::Object> class.
170
171 =head4 L<Catalyst::Authentication::Store::Tangram>
172
173 Allows access to authentication information stored in a database via a
174 L<Tangram> class.
175
176 =head4 L<Catalyst::Authentication::Store::DBIx::Class>
177
178 Allows access to authentication information stored in a database via a
179 L<DBIx::Class> class.
180
181 =head4 L<Catalyst::Authentication::Store::Jifty::DBI>
182
183 Allows access to authentication information stored in a database via a L<Jifty::DBI> class.
184
185 =head4 L<Catalyst::Authentication::User::Hash>
186
187 An easy authentication user object based on hashes.
188 See L<Catalyst::Authentication::Store::Minimal> for more info.
189
190 =head2 L<Catalyst::Plugin::Authorization::ACL>
191
192 This module provides Access Control List style path protection, with arbitrary
193 rules for L<Catalyst> applications. It operates only on the Catalyst private
194 namespace, at least at the moment.
195
196 =head2 L<Catalyst::Plugin::Authorization::Roles>
197
198 L<Catalyst::Plugin::Authorization::Roles> provides role-based
199 authorization for Catalyst based on L<Catalyst::Plugin::Authentication>.
200
201 =head2 L<Catalyst::Plugin::AutoSession>
202
203 =head2 L<Catalyst::Plugin::Browser>
204
205 Extends L<Catalyst::Request> by adding the capability of browser
206 detection.  It returns an instance of L<HTTP::BrowserDetect>, which lets
207 you get information from the client's user agent.
208
209 =head2 L<Catalyst::Plugin::Cache>
210
211 Provides a cache method enabling easy access to a shared cache implementing
212 the C<< Cache:: >> APO, such as:
213
214 =over
215
216 =item FastMmap
217
218 =item FileCache
219
220 =item BerkeleyDB
221
222 =item Memcached
223
224 =item CHI
225
226 =back
227
228 =head2 L<Catalyst::Plugin::CGI::Untaint>
229
230 =head2 L<Catalyst::Plugin::Charsets::Japanese>
231
232 =head2 L<Catalyst::Plugin::Compress::Bzip2>
233
234 =head2 L<Catalyst::Plugin::Compress::Deflate>
235
236 =head2 L<Catalyst::Plugin::Compress::Gzip>
237
238 =head2 L<Catalyst::Plugin::Compress::Zlib>
239
240 =head2 L<Catalyst::Plugin::ConfigLoader>
241
242 Provides a standard method for loading config files. Support
243 exists for various formats. See
244 L<Catalyst::Plugin::ConfigLoader::General>
245 L<Catalyst::Plugin::ConfigLoader::INI>,
246 L<Catalyst::Plugin::ConfigLoader::JSON>,
247 L<Catalyst::Plugin::ConfigLoader::Perl>,
248 L<Catalyst::Plugin::ConfigLoader::XML>, and
249 L<Catalyst::Plugin::ConfigLoader::YAML>
250
251 =head2 L<Catalyst::Plugin::ConfigurablePathTo>
252
253 =head2 L<Catalyst::Plugin::Devel::InPageLogs>
254
255 =head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>
256
257 =head2 L<Catalyst::Plugin::Dojo>
258
259 =head2 L<Catalyst::Plugin::Dumper>
260
261 =head2 L<Catalyst::Plugin::Email>
262
263 Sends email with L<Email::Send> and L<Email::MIME::Creator>.
264
265 =head2 L<Catalyst::Plugin::Email::Japanese>
266
267 =head2 L<Catalyst::Plugin::Email::Page>
268
269 =head2 L<Catalyst::Plugin::EmailValid>
270
271 =head2 L<Catalyst::Plugin::FillInForm>
272
273 A plugin based on C<HTML::FillInForm>, which describes itself as a module
274 to automatically insert data from a previous HTML form into the HTML input,
275 textarea, radio buttons, checkboxes, and select tags.  C<HTML::FillInForm>
276 is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
277 the values into the form tags.
278
279 =head2 L<Catalyst::Plugin::Flavour>
280
281 =head2 L<Catalyst::Plugin::Geography>
282
283 Allows you to retrieve various kinds of geographical information. You can
284 retrieve the country or code from the current user, from a given IP
285 address, or from a given hostname.
286
287 =head2 L<Catalyst::Plugin::Geography::Implementation>
288
289 =head2 L<Catalyst::Plugin::HashedCookies>
290
291 =head2 L<Catalyst::Plugin::HTML::Scrubber>
292
293 =head2 L<Catalyst::Plugin::I18N>
294
295 An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
296 and Maketext classes under your application's I18N namespace.
297
298 =head2 L<Catalyst::Plugin::JSONRPC>
299
300 =head2 L<Catalyst::Plugin::Message>
301
302 =head2 L<Catalyst::Plugin::MobileAgent>
303
304 =head2 L<Catalyst::Plugin::Observe>
305
306 Provides the ability to register AOP-like callbacks to specific Engine
307 events. Subclasses L<Class::Publisher>.
308
309 =head2 L<Catalyst::Plugin::OrderedParams>
310
311 Adjusts the way that parameters operate, causing them to appear in the same
312 order they were submitted by the browser. This can be useful for creating
313 things such as email forms.
314
315 =head2 L<Catalyst::Plugin::PageCache>
316
317 Helps improve the performance of slow or frequently accessed pages by
318 caching the entire output of your page. Subsequent requests to the page
319 will receive the page very quickly from cache.
320
321 =head2 L<Catalyst::Plugin::Params::Nested>
322
323 =head2 L<Catalyst::Plugin::Params::Nested::Expander>
324
325 =head2 L<Catalyst::Plugin::Pluggable>
326
327 A plugin for pluggable Catalyst applications.
328
329 =head2 L<Catalyst::Plugin::Prototype>
330
331 A plugin for the Prototype JavaScript library. This plugin allows you to
332 easily implement AJAX functionality without actually knowing Javascript.
333
334 =head2 L<Catalyst::Plugin::Redirect>
335
336 =head2 L<Catalyst::Plugin::RequestToken>
337
338 =head2 L<Catalyst::Plugin::RequireSSL>
339
340 Use this if you would like to force visitors to access certain pages using
341 only SSL mode. An attempt to access the page in non-SSL mode will receive a
342 redirect into SSL mode. Useful for login pages, shopping carts, user
343 registration forms, and other sensitive data.
344
345 =head2 L<Catalyst::Plugin::Scheduler>
346
347 =head2 L<Catalyst::Plugin::Session>
348
349 The L<Catalyst::Plugin::Session> series of modules provide an easy way to
350 include session handling in an application. You can choose from several
351 different backend storage methods and combine that with your choice of
352 client-side storage methods.
353
354 =head2 L<Catalyst::Plugin::Session::PerUser>
355
356 =head2 L<Catalyst::Plugin::Session::State>
357
358 =head2 L<Catalyst::Plugin::Session::State::Cookie>
359
360 =head2 L<Catalyst::Plugin::Session::State::URI>
361
362 =head2 L<Catalyst::Plugin::Session::Store>
363
364 =head2 L<Catalyst::Plugin::Session::Store::CDBI>
365
366 =head2 L<Catalyst::Plugin::Session::Store::DBI>
367
368 =head2 L<Catalyst::Plugin::Session::Store::DBIC>
369
370 =head2 L<Catalyst::Plugin::Session::Store::Dummy>
371
372 =head2 L<Catalyst::Plugin::Session::Store::FastMmap>
373
374 =head2 L<Catalyst::Plugin::Session::Store::File>
375
376 =head2 L<Catalyst::Plugin::Session::Store::Memcached>
377
378 =head2 L<Catalyst::Plugin::Session::Test::Store>
379
380 =head2 L<Catalyst::Plugin::Singleton>
381
382 =head2 L<Catalyst::Plugin::Snippets>
383
384 =head2 L<Catalyst::Plugin::SRU>
385
386 Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
387 and C<searchRetrieve>) from its own class.
388
389 =head2 L<Catalyst::Plugin::StackTrace>
390
391 =head2 L<Catalyst::Plugin::Static>
392
393 L<Catalyst::Plugin::Static> is a plugin to serve static files from
394 C<< $c->config(root => 'foo') >>. Intended chiefly for development
395 purposes.
396
397 =head2 L<Catalyst::Plugin::Static::Simple>
398
399 Serves static files in your application without requiring a single line of
400 code.
401
402 =head2 L<Catalyst::Plugin::SubRequest>
403
404 A plugin to allow subrequests to actions to be made within Catalyst. Nice
405 for portal software and such.
406
407 =head2 L<Catalyst::Plugin::SuperForm>
408
409 An interface to the L<HTML::SuperForm> module, enabling easy HTML form
410 creation.
411
412 =head2 L<Catalyst::Plugin::Unicode::Encoding>
413
414 Provides a Unicode-aware Catalyst. On request, it decodes all params from
415 UTF-8 octets into a sequence of logical characters. On response, it encodes
416 the body into UTF-8 octets.
417
418 =head2 L<Catalyst::Plugin::Unicode>
419
420 Disrecommended plugin which tries to autodetect the uft8ness of the output
421 and do the correct thing. This may work in some cases, but if it helps,
422 you've already painted yourself into a corner - try to avoid!
423
424 =head2 L<Catalyst::Plugin::Upload::Basename>
425
426 =head2 L<Catalyst::Plugin::Upload::MD5>
427
428 =head2 L<Catalyst::Plugin::Upload::MIME>
429
430 =head2 L<Catalyst::Plugin::UploadProgress>
431
432 =head2 L<Catalyst::Plugin::XMLRPC>
433
434 Allows your Controller class to dispatch XMLRPC methods from its own class.
435
436 =head1 CONTROLLERS
437
438 =head2 L<Catalyst::Controller::HTML::FormFu>
439
440 Catalyst integration for <HTML::FormFu>.
441
442 =head1 MODELS
443
444 =head2 L<Catalyst::Model::CDBI>
445
446 The C<Class::DBI> (CDBI) model class.  It is built on top of
447 C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
448 sub-classes by scanning the underlying table schemas, setting up columns
449 and primary keys.
450
451 =head2 L<Catalyst::Model::CDBI::Plain>
452
453 A neutral interface to the C<Class::DBI> module which does not attempt
454 to automate table setup. It allows the user to manually set up
455 C<Class::DBI> classes, either by doing so within the Catalyst model
456 classes themselves, or by inheriting from existing C<Class::DBI>
457 classes.
458
459 =head2 L<Catalyst::Model::DBIC::Schema>
460
461 A L<DBIx::Class> model class that can use either an explicit
462 L<DBIx::Class::Schema> or one automatically loaded from your database
463 via L<DBIx::Class::Schema::Loader>.
464
465 =head2 L<Catalyst::Model::EVDB>
466
467 =head2 L<Catalyst::Model::File>
468
469 =head2 L<Catalyst::Model::Gedcom>
470
471 =head2 L<Catalyst::Model::LDAP>
472
473 =head2 L<Catalyst::Model::NetBlogger>
474
475 =head2 L<Catalyst::Model::Plucene>
476
477 A model class for the Plucene search engine.
478
479 =head2 L<Catalyst::Model::Proxy>
480
481 =head2 L<Catalyst::Model::SVN>
482
483 =head2 L<Catalyst::Model::Xapian>
484
485 A model class for the Xapian search engine.
486
487 =head1 VIEWS
488
489 =head2 L<Catalyst::View::Atom::XML>
490
491 =head2 L<Catalyst::View::Chart::Strip>
492
493 =head2 L<Catalyst::View::CSS::Squish>
494
495 =head2 L<Catalyst::View::Embperl>
496
497 =head2 L<Catalyst::View::GD::Barcode>
498
499 =head2 L<Catalyst::View::GraphViz>
500
501 =head2 L<Catalyst::View::HTML::Template>
502
503 A view component for rendering pages with L<HTML::Template>.
504
505 =head2 L<Catalyst::View::Jemplate>
506
507 =head2 L<Catalyst::View::JSON>
508
509 =head2 L<Catalyst::View::Mason>
510
511 A view component for rendering pages with L<HTML::Mason>.
512
513 =head2 L<Catalyst::View::MicroMason>
514
515 =head2 L<Catalyst::View::PHP>
516
517 =head2 L<Catalyst::View::PSP>
518
519 A view component for rendering pages using PSP, a Perl extension
520 implementing a JSP-like templating system. See L<Text::PSP>.
521
522 =head2 L<Catalyst::View::Petal>
523
524 A view component for rendering pages using Petal, the Perl Template
525 Attribute Language, an XML-based templating system. See L<Petal>.
526
527 =head2 L<Catalyst::View::TT>
528
529 A view component for rendering pages with Template Toolkit. See
530 L<Template::Manual>.
531
532 =head2 L<Catalyst::View::XSLT>
533
534 =head2 L<Catalyst::View::vCard>
535
536 =head1 Actions
537
538 =head2 L<Catalyst::Action::RenderView>
539
540 Creates a sane, standard end method for your application.
541
542 =head1 OBSOLETE MODULES
543
544 =head2 L<Catalyst::Controller::BindLex>
545
546 Lets you mark lexical variables with a C<Stashed> attribute, automatically
547 passing them to the stash. Discouraged by the author.
548
549 =head2 L<Catalyst::Model::DBIC>
550
551 Replaced by L<Catalyst::Model::DBIC::Schema>.
552
553 =head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
554
555 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
556
557 =head2 L<Catalyst::Plugin::Authentication::CDBI>
558
559 Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
560
561 =head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
562
563 Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
564
565 =head2 L<Catalyst::Plugin::Authentication::LDAP>
566
567 Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
568
569 =head2 L<Catalyst::Plugin::Authentication::Simple>
570
571 Replaced by L<Catalyst::Plugin::Authentication>.
572
573 =head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
574
575 =head2 L<Catalyst::Plugin::CDBI::Transaction>
576
577 =head2 Catalyst::Plugin::Config::*
578
579 The L<Catalyst::Plugin::Config::JSON> and
580 L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
581 corresponding L<Catalyst::Plugin::ConfigLoader> modules.
582
583 =head2 L<Catalyst::Plugin::DefaultEnd>
584
585 Replaced by L<Catalyst::Action::RenderView>
586
587 =head2 L<Catalyst::Plugin::SanitizeUrl>
588
589 =head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
590
591 =head2 Catalyst::Plugin::Session::*
592
593 The L<Catalyst::Plugin::Session::CGISession>,
594 L<Catalyst::Plugin::Session::FastMmap>,
595 L<Catalyst::Plugin::Session::Flex>, and
596 L<Catalyst::Plugin::Session::Manager>
597 modules have been replaced by the <Catalyst::Plugin::Session> framework.
598
599 =head1 AUTHORS
600
601 Catalyst Contributors, see Catalyst.pm
602
603 =head1 COPYRIGHT
604
605 This library is free software. You can redistribute it and/or modify it under
606 the same terms as Perl itself.
607
608 =cut
609