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