show output of reloaded server after updating an action
[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
266=head2 L<Catalyst::Plugin::Email>
267
268Sends email with L<Email::Send> and L<Email::MIME::Creator>.
269
270=head2 L<Catalyst::Plugin::Email::Japanese>
271
272=head2 L<Catalyst::Plugin::Email::Page>
273
274=head2 L<Catalyst::Plugin::EmailValid>
275
276=head2 L<Catalyst::Plugin::FillInForm>
277
278A plugin based on C<HTML::FillInForm>, which describes itself as a module
279to automatically insert data from a previous HTML form into the HTML input,
280textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
281is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
282the values into the form tags.
283
284=head2 L<Catalyst::Plugin::Flavour>
285
cb93c9d7 286=head2 L<Catalyst::Plugin::Geography>
287
288Allows you to retrieve various kinds of geographical information. You can
289retrieve the country or code from the current user, from a given IP
290address, or from a given hostname.
291
292=head2 L<Catalyst::Plugin::Geography::Implementation>
293
294=head2 L<Catalyst::Plugin::HashedCookies>
295
296=head2 L<Catalyst::Plugin::HTML::Scrubber>
297
cb93c9d7 298=head2 L<Catalyst::Plugin::I18N>
299
300An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
301and Maketext classes under your application's I18N namespace.
302
303=head2 L<Catalyst::Plugin::JSONRPC>
304
cb93c9d7 305=head2 L<Catalyst::Plugin::Message>
306
307=head2 L<Catalyst::Plugin::MobileAgent>
308
309=head2 L<Catalyst::Plugin::Observe>
310
311Provides the ability to register AOP-like callbacks to specific Engine
312events. Subclasses L<Class::Publisher>.
313
314=head2 L<Catalyst::Plugin::OrderedParams>
315
316Adjusts the way that parameters operate, causing them to appear in the same
317order they were submitted by the browser. This can be useful for creating
318things such as email forms.
319
320=head2 L<Catalyst::Plugin::PageCache>
321
322Helps improve the performance of slow or frequently accessed pages by
323caching the entire output of your page. Subsequent requests to the page
324will receive the page very quickly from cache.
325
326=head2 L<Catalyst::Plugin::Params::Nested>
327
328=head2 L<Catalyst::Plugin::Params::Nested::Expander>
329
330=head2 L<Catalyst::Plugin::Pluggable>
331
332A plugin for pluggable Catalyst applications.
333
334=head2 L<Catalyst::Plugin::Prototype>
335
46a5f2f5 336A plugin for the Prototype JavaScript library. This plugin allows you to
cb93c9d7 337easily implement AJAX functionality without actually knowing Javascript.
338
339=head2 L<Catalyst::Plugin::Redirect>
340
4790245b 341Allows for easy redirecting with the Catalyst app.
342
cb93c9d7 343=head2 L<Catalyst::Plugin::RequestToken>
344
345=head2 L<Catalyst::Plugin::RequireSSL>
346
347Use this if you would like to force visitors to access certain pages using
348only SSL mode. An attempt to access the page in non-SSL mode will receive a
349redirect into SSL mode. Useful for login pages, shopping carts, user
350registration forms, and other sensitive data.
351
352=head2 L<Catalyst::Plugin::Scheduler>
353
354=head2 L<Catalyst::Plugin::Session>
355
356The L<Catalyst::Plugin::Session> series of modules provide an easy way to
357include session handling in an application. You can choose from several
358different backend storage methods and combine that with your choice of
359client-side storage methods.
360
361=head2 L<Catalyst::Plugin::Session::PerUser>
362
363=head2 L<Catalyst::Plugin::Session::State>
364
365=head2 L<Catalyst::Plugin::Session::State::Cookie>
366
367=head2 L<Catalyst::Plugin::Session::State::URI>
368
369=head2 L<Catalyst::Plugin::Session::Store>
370
371=head2 L<Catalyst::Plugin::Session::Store::CDBI>
372
373=head2 L<Catalyst::Plugin::Session::Store::DBI>
374
375=head2 L<Catalyst::Plugin::Session::Store::DBIC>
376
377=head2 L<Catalyst::Plugin::Session::Store::Dummy>
378
379=head2 L<Catalyst::Plugin::Session::Store::FastMmap>
380
381=head2 L<Catalyst::Plugin::Session::Store::File>
382
383=head2 L<Catalyst::Plugin::Session::Store::Memcached>
384
385=head2 L<Catalyst::Plugin::Session::Test::Store>
386
387=head2 L<Catalyst::Plugin::Singleton>
388
389=head2 L<Catalyst::Plugin::Snippets>
390
391=head2 L<Catalyst::Plugin::SRU>
392
393Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
394and C<searchRetrieve>) from its own class.
395
396=head2 L<Catalyst::Plugin::StackTrace>
397
398=head2 L<Catalyst::Plugin::Static>
399
400L<Catalyst::Plugin::Static> is a plugin to serve static files from
bbddff00 401C<< $c->config(root => 'foo') >>. Intended chiefly for development
cb93c9d7 402purposes.
403
404=head2 L<Catalyst::Plugin::Static::Simple>
405
406Serves static files in your application without requiring a single line of
bbddff00 407code.
cb93c9d7 408
409=head2 L<Catalyst::Plugin::SubRequest>
410
411A plugin to allow subrequests to actions to be made within Catalyst. Nice
412for portal software and such.
413
414=head2 L<Catalyst::Plugin::SuperForm>
415
416An interface to the L<HTML::SuperForm> module, enabling easy HTML form
417creation.
418
5521f179 419=head2 L<Catalyst::Plugin::Unicode::Encoding>
cb93c9d7 420
421Provides a Unicode-aware Catalyst. On request, it decodes all params from
422UTF-8 octets into a sequence of logical characters. On response, it encodes
423the body into UTF-8 octets.
424
5521f179 425=head2 L<Catalyst::Plugin::Unicode>
426
427Disrecommended plugin which tries to autodetect the uft8ness of the output
428and do the correct thing. This may work in some cases, but if it helps,
429you've already painted yourself into a corner - try to avoid!
cb93c9d7 430
431=head2 L<Catalyst::Plugin::Upload::Basename>
432
433=head2 L<Catalyst::Plugin::Upload::MD5>
434
4790245b 435Computes the MD5 message digest of uploaded files.
436
cb93c9d7 437=head2 L<Catalyst::Plugin::Upload::MIME>
438
439=head2 L<Catalyst::Plugin::UploadProgress>
440
441=head2 L<Catalyst::Plugin::XMLRPC>
442
443Allows your Controller class to dispatch XMLRPC methods from its own class.
444
445=head1 CONTROLLERS
446
58193af5 447=head2 L<Catalyst::Controller::HTML::FormFu>
cb93c9d7 448
58193af5 449Catalyst integration for <HTML::FormFu>.
cb93c9d7 450
451=head1 MODELS
452
453=head2 L<Catalyst::Model::CDBI>
454
455The C<Class::DBI> (CDBI) model class. It is built on top of
456C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
457sub-classes by scanning the underlying table schemas, setting up columns
458and primary keys.
459
460=head2 L<Catalyst::Model::CDBI::Plain>
461
462A neutral interface to the C<Class::DBI> module which does not attempt
463to automate table setup. It allows the user to manually set up
464C<Class::DBI> classes, either by doing so within the Catalyst model
465classes themselves, or by inheriting from existing C<Class::DBI>
466classes.
467
468=head2 L<Catalyst::Model::DBIC::Schema>
469
470A L<DBIx::Class> model class that can use either an explicit
471L<DBIx::Class::Schema> or one automatically loaded from your database
472via L<DBIx::Class::Schema::Loader>.
473
474=head2 L<Catalyst::Model::EVDB>
475
476=head2 L<Catalyst::Model::File>
477
478=head2 L<Catalyst::Model::Gedcom>
479
480=head2 L<Catalyst::Model::LDAP>
481
482=head2 L<Catalyst::Model::NetBlogger>
483
484=head2 L<Catalyst::Model::Plucene>
485
486A model class for the Plucene search engine.
487
488=head2 L<Catalyst::Model::Proxy>
489
490=head2 L<Catalyst::Model::SVN>
491
492=head2 L<Catalyst::Model::Xapian>
493
494A model class for the Xapian search engine.
495
496=head1 VIEWS
497
498=head2 L<Catalyst::View::Atom::XML>
499
500=head2 L<Catalyst::View::Chart::Strip>
501
502=head2 L<Catalyst::View::CSS::Squish>
503
504=head2 L<Catalyst::View::Embperl>
505
506=head2 L<Catalyst::View::GD::Barcode>
507
508=head2 L<Catalyst::View::GraphViz>
509
510=head2 L<Catalyst::View::HTML::Template>
511
512A view component for rendering pages with L<HTML::Template>.
513
514=head2 L<Catalyst::View::Jemplate>
515
516=head2 L<Catalyst::View::JSON>
517
518=head2 L<Catalyst::View::Mason>
519
520A view component for rendering pages with L<HTML::Mason>.
521
522=head2 L<Catalyst::View::MicroMason>
523
524=head2 L<Catalyst::View::PHP>
525
526=head2 L<Catalyst::View::PSP>
527
528A view component for rendering pages using PSP, a Perl extension
529implementing a JSP-like templating system. See L<Text::PSP>.
530
531=head2 L<Catalyst::View::Petal>
532
533A view component for rendering pages using Petal, the Perl Template
534Attribute Language, an XML-based templating system. See L<Petal>.
535
536=head2 L<Catalyst::View::TT>
537
538A view component for rendering pages with Template Toolkit. See
539L<Template::Manual>.
540
541=head2 L<Catalyst::View::XSLT>
542
543=head2 L<Catalyst::View::vCard>
544
bbddff00 545=head1 Actions
546
547=head2 L<Catalyst::Action::RenderView>
548
549Creates a sane, standard end method for your application.
550
cb93c9d7 551=head1 OBSOLETE MODULES
552
58193af5 553=head2 L<Catalyst::Controller::BindLex>
554
555Lets you mark lexical variables with a C<Stashed> attribute, automatically
556passing them to the stash. Discouraged by the author.
557
cb93c9d7 558=head2 L<Catalyst::Model::DBIC>
559
560Replaced by L<Catalyst::Model::DBIC::Schema>.
561
562=head2 L<Catalyst::Plugin::Authentication::Basic::Remote>
563
564Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
565
566=head2 L<Catalyst::Plugin::Authentication::CDBI>
567
568Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.
569
570=head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>
571
572Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.
573
574=head2 L<Catalyst::Plugin::Authentication::LDAP>
575
576Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.
577
578=head2 L<Catalyst::Plugin::Authentication::Simple>
579
580Replaced by L<Catalyst::Plugin::Authentication>.
581
582=head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>
583
584=head2 L<Catalyst::Plugin::CDBI::Transaction>
585
586=head2 Catalyst::Plugin::Config::*
587
588The L<Catalyst::Plugin::Config::JSON> and
589L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
590corresponding L<Catalyst::Plugin::ConfigLoader> modules.
591
592=head2 L<Catalyst::Plugin::DefaultEnd>
593
594Replaced by L<Catalyst::Action::RenderView>
595
596=head2 L<Catalyst::Plugin::SanitizeUrl>
597
598=head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>
599
600=head2 Catalyst::Plugin::Session::*
601
58193af5 602The L<Catalyst::Plugin::Session::CGISession>,
cb93c9d7 603L<Catalyst::Plugin::Session::FastMmap>,
604L<Catalyst::Plugin::Session::Flex>, and
605L<Catalyst::Plugin::Session::Manager>
606modules have been replaced by the <Catalyst::Plugin::Session> framework.
607
608=head1 AUTHORS
609
bbddff00 610Catalyst Contributors, see Catalyst.pm
cb93c9d7 611
612=head1 COPYRIGHT
613
bbddff00 614This library is free software. You can redistribute it and/or modify it under
cb93c9d7 615the same terms as Perl itself.
bbddff00 616
617=cut
618