File: Components.pod

package info (click to toggle)
libcatalyst-manual-perl 5.9004-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 820 kB
  • sloc: perl: 1,974; makefile: 2
file content (617 lines) | stat: -rw-r--r-- 18,223 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
=head1 NAME

Catalyst::Manual::Components - Reuseable components for Catalyst applications

=head1 DESCRIPTION

This section lists the some of the components (and plugins) that are
available to extend the runtime functionality of Catalyst. Most components
are not distributed with Catalyst but should be available from CPAN.
They typically require additional modules from CPAN.

This list may well be outdated by the time you read this, and some
plugins may be deprecated, or, conversely, may now part of core
L<Catalyst>. Be sure to check the Catalyst:: and CatalystX:: namespaces
for additional components, and consult the mailing list (
L<http://dev.catalyst.perl.org/wiki/Support> ) for advice on the current
status or preferred use of your chosen plugin/framework.

=head1 PLUGINS

Take care with plugins!  In general with a plugin ask "should this be
acting globally on my application application?".  If not it should be a
Controller Role (e.g. see L<Catalyst::TraitFor::Controller::reCAPTCHA>.

=head2 L<Catalyst::Plugin::Account::AutoDiscovery>

Provides Account Auto-Discovery for Catalyst.

=head2 L<Catalyst::Plugin::Acme::Scramble>

Implements a demonstration showing how easily fluent speakers can read
scrambled text if the first and last letters remain constant but the middle
. Operates on text/plain and text/html served by your Catalyst application.
This should really be a controller role, or even a View these days.

=head2 L<Catalyst::Plugin::Alarm>

=head2 L<Catalyst::Plugin::AtomPP>

Allows you to dispatch AtomPP methods.

=head2 L<Catalyst::Plugin::AtomServer>

A plugin that implements the necessary bits to make it easy to build an
Atom API server for any Catalyst-based application.

=head2 L<Catalyst::Plugin::Authentication>

An infrastructure plugin for the Catalyst authentication framework. Now the
recommended way to do any form of Authentication.

Note that newer versions of the authentication plugin allow multiple
C<realms>, so that you can authenticate users in different ways in different
parts of your application.

This, however, has involved deprecated all classes in the
C<Catalyst::Plugin::Authentication::Credential::XXX> and
C<Catalyst::Plugin::Authentication::Store::XXX> namespaces.

These plugins are still usable, but they have mostly been replaced with
new modules in the new namespace which will work together.

=head3 Available Credential modules:

=head4 L<Catalyst::Authentication::Credential::AuthTkt>

Allows you to use the L<Apache::AuthTkt> module with Catalyst.

=head4 L<Catalyst::Authentication::Credential::FBConnect>

Allows you to authenticate Facebook users using the FBConnect API.

=head4 L<Catalyst::Authentication::Credential::Flickr>

Provides authentication via Flickr, using its API.

=head4 L<Catalyst::Authentication::Credential::HTTP>

Allows you to authenticate users using HTTP Basic or Digest authentication.

=head4 L<Catalyst::Authentication::Credential::HTTP::Proxy>

Allows you to authenticate users against a remote web server
offering HTTP authentication.

=head4 L<Catalyst::Authentication::Credential::Kerberos>

Allows you to authenticate your users against a Kerberos server.

=head4 L<Catalyst::Authentication::Credential::OAuth>

Allows you to authenticate users using their login on other websites
supporting the OAuth protocol.

=head4 L<Catalyst::Authentication::Credential::OpenID>

Allows you to authenticate users using their login on other websites
supporting the OpenID protocol.

=head4 L<Catalyst::Authentication::Credential::Password>

Takes a username (or userid) and a password, and tries various methods of
comparing a password based on what the chosen store's user objects support.
Part of the Authentication Framework L<Catalyst::Plugin::Authentication>.

=head4 L<Catalyst::Authentication::Credential::RPX>

Allows you to authenticate users using the RPX protocol.

=head4 L<Catalyst::Authentication::Credential::Remote>

Allows you to authenticate users in Catalyst that have already been
authenticated by your web server. This is useful for authenticating
users with SSL Client certificates, and using NTLM or any other
authentication protocol natively supported by your web server.

=head4 L<Catalyst::Authentication::Credential::Testing>

Allows you to set the same password for all users, which is useful when
you want to test logging in as multiple users or multiple types of user,
without having to mock things, or set all users' passwords in your test
suite.

=head4 L<Catalyst::Authentication::Credential::Authen::Simple>

Allows any of the L<Authen::Simple> family of modules to be used
to authenticate users in Catalyst.

=head3 Available Store modules:

=head4 L<Catalyst::Authentication::Store::DBIx::Class>

Does authentication and authorization against a L<DBIx::Class> model.

=head4 L<Catalyst::Authentication::Store::Htpasswd>

Uses L<Authen::Htpasswd> to let your application use C<.htpasswd> files
for its authentication storage.

=head4 L<Catalyst::Authentication::Store::AuthTkt>

This module implements the Catalyst::Authentication API for L<Apache::AuthTkt>.

=head4 L<Catalyst::Authentication::Store::DBI>

Allows you to use a plain L<DBI> database connection to identify users. 

=head4 L<Catalyst::Authentication::Store::Htpasswd>

Allows you to use an Apache htpasswd type file to authenticate users.

=head4 L<Catalyst::Authentication::Store::KiokuDB>

Authenticate users stored as objects in the L<KiokuDB> object graph
storage engine system.

=head4 L<Catalyst::Authentication::Store::LDAP>

Authenticates users using an LDAP server.

=head4 L<Catalyst::Authentication::Store::Minimal>

Lets you create a very quick and dirty user database in your application's
config hash. Great for testing or getting up and running quickly.

=head4 L<Catalyst::Authentication::Store::Null>

The Null store is a transparent store where any supplied user data is
accepted.  This is mainly useful for remotely authenticating credentials
(e.g. OpenID) which may not be tied to any local storage.

=head4 L<Catalyst::Authentication::Store::RDBO>

Allows access to authentication information stored in a database via a L<Rose::DB::Object> class.

=head4 L<Catalyst::Authentication::Store::Tangram>

Allows access to authentication information stored in a database via a
L<Tangram> class.

=head4 L<Catalyst::Authentication::Store::DBIx::Class>

Allows access to authentication information stored in a database via a
L<DBIx::Class> class.

=head4 L<Catalyst::Authentication::Store::Jifty::DBI>

Allows access to authentication information stored in a database via a L<Jifty::DBI> class.

=head4 L<Catalyst::Authentication::User::Hash>

An easy authentication user object based on hashes.
See L<Catalyst::Authentication::Store::Minimal> for more info.

=head2 L<Catalyst::Plugin::Authorization::ACL>

This module provides Access Control List style path protection, with arbitrary
rules for L<Catalyst> applications. It operates only on the Catalyst private
namespace, at least at the moment.

=head2 L<Catalyst::Plugin::Authorization::Roles>

L<Catalyst::Plugin::Authorization::Roles> provides role-based
authorization for Catalyst based on L<Catalyst::Plugin::Authentication>.

=head2 L<Catalyst::Plugin::AutoSession>

L<Catalyst::Plugin::AutoSession> enables specified request parameters
to generate session variables.

=head2 L<Catalyst::Plugin::Browser>

Extends L<Catalyst::Request> by adding the capability of browser
detection.  It returns an instance of L<HTTP::BrowserDetect>, which lets
you get information from the client's user agent.

=head2 L<Catalyst::Plugin::Cache>

Provides a cache method enabling easy access to a shared cache implementing
the C<< Cache:: >> APO, such as:

=over

=item FastMmap

=item FileCache

=item BerkeleyDB

=item Memcached

=item CHI

=back

=head2 L<Catalyst::Plugin::CGI::Untaint>

=head2 L<Catalyst::Plugin::Charsets::Japanese>

Provides specific charset handlers for the Japanese charsets.

=head2 L<Catalyst::Plugin::Compress::Bzip2>

=head2 L<Catalyst::Plugin::Compress::Deflate>

=head2 L<Catalyst::Plugin::Compress::Gzip>

=head2 L<Catalyst::Plugin::Compress::Zlib>

=head2 L<Catalyst::Plugin::ConfigLoader>

Provides a standard method for loading config files. Support
exists for various formats. See
L<Catalyst::Plugin::ConfigLoader::General>
L<Catalyst::Plugin::ConfigLoader::INI>,
L<Catalyst::Plugin::ConfigLoader::JSON>,
L<Catalyst::Plugin::ConfigLoader::Perl>,
L<Catalyst::Plugin::ConfigLoader::XML>, and
L<Catalyst::Plugin::ConfigLoader::YAML>

=head2 L<Catalyst::Plugin::ConfigurablePathTo>

=head2 L<Catalyst::Plugin::Devel::InPageLogs>

=head2 L<Catalyst::Plugin::Devel::InPageLogs::Log>

=head2 L<Catalyst::Plugin::Dojo>

=head2 L<Catalyst::Plugin::Dumper>

=head2 L<Catalyst::Plugin::Email::Japanese>

=head2 L<Catalyst::Plugin::Email::Page>

=head2 L<Catalyst::Plugin::FillInForm>

A plugin based on C<HTML::FillInForm>, which describes itself as a module
to automatically insert data from a previous HTML form into the HTML input,
textarea, radio buttons, checkboxes, and select tags.  C<HTML::FillInForm>
is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
the values into the form tags.

=head2 L<Catalyst::Plugin::Flavour>

=head2 L<Catalyst::Plugin::Geography>

Allows you to retrieve various kinds of geographical information. You can
retrieve the country or code from the current user, from a given IP
address, or from a given hostname.

=head2 L<Catalyst::Plugin::Geography::Implementation>

=head2 L<Catalyst::Plugin::HashedCookies>

=head2 L<Catalyst::Plugin::HTML::Scrubber>

=head2 L<Catalyst::Plugin::I18N>

An internationalization plugin for Catalyst. Supports C<mo>/C<po> files
and Maketext classes under your application's I18N namespace.

=head2 L<Catalyst::Plugin::JSONRPC>

=head2 L<Catalyst::Plugin::Message>

=head2 L<Catalyst::Plugin::MobileAgent>

=head2 L<Catalyst::Plugin::Observe>

Provides the ability to register AOP-like callbacks to specific Engine
events. Subclasses L<Class::Publisher>.

=head2 L<Catalyst::Plugin::OrderedParams>

Adjusts the way that parameters operate, causing them to appear in the same
order they were submitted by the browser. This can be useful for creating
things such as email forms.

=head2 L<Catalyst::Plugin::PageCache>

Helps improve the performance of slow or frequently accessed pages by
caching the entire output of your page. Subsequent requests to the page
will receive the page very quickly from cache.

=head2 L<Catalyst::Plugin::Params::Nested>

=head2 L<Catalyst::Plugin::Params::Nested::Expander>

=head2 L<Catalyst::Plugin::Pluggable>

A plugin for pluggable Catalyst applications.

=head2 L<Catalyst::Plugin::Prototype>

A plugin for the Prototype JavaScript library. This plugin allows you to
easily implement AJAX functionality without actually knowing Javascript.

=head2 L<Catalyst::Plugin::Redirect>

Allows for easy redirecting with the Catalyst app.

=head2 L<Catalyst::Plugin::RequestToken>

=head2 L<Catalyst::Plugin::RequireSSL>

Use this if you would like to force visitors to access certain pages using
only SSL mode. An attempt to access the page in non-SSL mode will receive a
redirect into SSL mode. Useful for login pages, shopping carts, user
registration forms, and other sensitive data.

=head2 L<Catalyst::Plugin::Scheduler>

=head2 L<Catalyst::Plugin::Session>

The L<Catalyst::Plugin::Session> series of modules provide an easy way to
include session handling in an application. You can choose from several
different backend storage methods and combine that with your choice of
client-side storage methods.

=head2 L<Catalyst::Plugin::Session::PerUser>

=head2 L<Catalyst::Plugin::Session::State>

=head2 L<Catalyst::Plugin::Session::State::Cookie>

=head2 L<Catalyst::Plugin::Session::State::URI>

=head2 L<Catalyst::Plugin::Session::Store>

=head2 L<Catalyst::Plugin::Session::Store::CDBI>

=head2 L<Catalyst::Plugin::Session::Store::DBI>

=head2 L<Catalyst::Plugin::Session::Store::DBIC>

=head2 L<Catalyst::Plugin::Session::Store::Dummy>

=head2 L<Catalyst::Plugin::Session::Store::FastMmap>

=head2 L<Catalyst::Plugin::Session::Store::File>

=head2 L<Catalyst::Plugin::Session::Store::Memcached>

=head2 L<Catalyst::Plugin::Session::Test::Store>

=head2 L<Catalyst::Plugin::Singleton>

=head2 L<Catalyst::Plugin::Snippets>

=head2 L<Catalyst::Plugin::SRU>

Allows your controller class to dispatch SRU actions (C<explain>, C<scan>,
and C<searchRetrieve>) from its own class.

=head2 L<Catalyst::Plugin::StackTrace>

=head2 L<Catalyst::Plugin::Static>

L<Catalyst::Plugin::Static> is a plugin to serve static files from
C<< $c->config(root => 'foo') >>. Intended chiefly for development
purposes.

=head2 L<Catalyst::Plugin::Static::Simple>

Serves static files in your application without requiring a single line of
code.

=head2 L<Catalyst::Plugin::SubRequest>

A plugin to allow subrequests to actions to be made within Catalyst. Nice
for portal software and such.

=head2 L<Catalyst::Plugin::SuperForm>

An interface to the L<HTML::SuperForm> module, enabling easy HTML form
creation.

=head2 L<Catalyst::Plugin::Unicode::Encoding>

Provides a Unicode-aware Catalyst. On request, it decodes all params from
UTF-8 octets into a sequence of logical characters. On response, it encodes
the body into UTF-8 octets.

=head2 L<Catalyst::Plugin::Unicode>

Disrecommended plugin which tries to autodetect the uft8ness of the output
and do the correct thing. This may work in some cases, but if it helps,
you've already painted yourself into a corner - try to avoid!

=head2 L<Catalyst::Plugin::Upload::Basename>

=head2 L<Catalyst::Plugin::Upload::MD5>

Computes the MD5 message digest of uploaded files.

=head2 L<Catalyst::Plugin::Upload::MIME>

=head2 L<Catalyst::Plugin::UploadProgress>

=head2 L<Catalyst::Plugin::XMLRPC>

Allows your Controller class to dispatch XMLRPC methods from its own class.

=head1 CONTROLLERS

=head2 L<Catalyst::Controller::HTML::FormFu>

Catalyst integration for <HTML::FormFu>.

=head1 MODELS

=head2 L<Catalyst::Model::CDBI>

The C<Class::DBI> (CDBI) model class.  It is built on top of
C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
sub-classes by scanning the underlying table schemas, setting up columns
and primary keys.

=head2 L<Catalyst::Model::CDBI::Plain>

A neutral interface to the C<Class::DBI> module which does not attempt
to automate table setup. It allows the user to manually set up
C<Class::DBI> classes, either by doing so within the Catalyst model
classes themselves, or by inheriting from existing C<Class::DBI>
classes.

=head2 L<Catalyst::Model::DBIC::Schema>

A L<DBIx::Class> model class that can use either an explicit
L<DBIx::Class::Schema> or one automatically loaded from your database
via L<DBIx::Class::Schema::Loader>.

=head2 L<Catalyst::Model::EVDB>

=head2 L<Catalyst::Model::File>

=head2 L<Catalyst::Model::Gedcom>

=head2 L<Catalyst::Model::LDAP>

=head2 L<Catalyst::Model::NetBlogger>

=head2 L<Catalyst::Model::Plucene>

A model class for the Plucene search engine.

=head2 L<Catalyst::Model::Proxy>

=head2 L<Catalyst::Model::SVN>

=head2 L<Catalyst::Model::Xapian>

A model class for the Xapian search engine.

=head1 VIEWS

=head2 L<Catalyst::View::Atom::XML>

=head2 L<Catalyst::View::Chart::Strip>

=head2 L<Catalyst::View::CSS::Squish>

=head2 L<Catalyst::View::Embperl>

=head2 L<Catalyst::View::GD::Barcode>

=head2 L<Catalyst::View::GraphViz>

=head2 L<Catalyst::View::HTML::Template>

A view component for rendering pages with L<HTML::Template>.

=head2 L<Catalyst::View::Jemplate>

=head2 L<Catalyst::View::JSON>

=head2 L<Catalyst::View::Mason>

A view component for rendering pages with L<HTML::Mason>.

=head2 L<Catalyst::View::MicroMason>

=head2 L<Catalyst::View::PHP>

=head2 L<Catalyst::View::PSP>

A view component for rendering pages using PSP, a Perl extension
implementing a JSP-like templating system. See L<Text::PSP>.

=head2 L<Catalyst::View::Petal>

A view component for rendering pages using Petal, the Perl Template
Attribute Language, an XML-based templating system. See L<Petal>.

=head2 L<Catalyst::View::TT>

A view component for rendering pages with Template Toolkit. See
L<Template::Manual>.

=head2 L<Catalyst::View::XSLT>

=head2 L<Catalyst::View::vCard>

=head1 Actions

=head2 L<Catalyst::Action::RenderView>

Creates a sane, standard end method for your application.

=head1 OBSOLETE MODULES

=head2 L<Catalyst::Controller::BindLex>

Lets you mark lexical variables with a C<Stashed> attribute, automatically
passing them to the stash. Discouraged by the author.

=head2 L<Catalyst::Model::DBIC>

Replaced by L<Catalyst::Model::DBIC::Schema>.

=head2 L<Catalyst::Plugin::Authentication::Basic::Remote>

Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.

=head2 L<Catalyst::Plugin::Authentication::CDBI>

Replaced by L<Catalyst::Plugin::Authentication::Store::DBIC>.

=head2 L<Catalyst::Plugin::Authentication::CDBI::Basic>

Replaced by L<Catalyst::Plugin::Authentication::Credential::HTTP>.

=head2 L<Catalyst::Plugin::Authentication::LDAP>

Replaced by L<Catalyst::Plugin::Authentication::Store::LDAP>.

=head2 L<Catalyst::Plugin::Authentication::Simple>

Replaced by L<Catalyst::Plugin::Authentication>.

=head2 L<Catalyst::Plugin::Authorization::CDBI::GroupToken>

=head2 L<Catalyst::Plugin::CDBI::Transaction>

=head2 Catalyst::Plugin::Config::*

The L<Catalyst::Plugin::Config::JSON> and
L<Catalyst::Plugin::Config::YAML> modules have been replaced by their
corresponding L<Catalyst::Plugin::ConfigLoader> modules.

=head2 L<Catalyst::Plugin::DefaultEnd>

Replaced by L<Catalyst::Action::RenderView>

=head2 L<Catalyst::Plugin::SanitizeUrl>

=head2 L<Catalyst::Plugin::SanitizeUrl::PrepAction>

=head2 Catalyst::Plugin::Session::*

The L<Catalyst::Plugin::Session::CGISession>,
L<Catalyst::Plugin::Session::FastMmap>,
L<Catalyst::Plugin::Session::Flex>, and
L<Catalyst::Plugin::Session::Manager>
modules have been replaced by the <Catalyst::Plugin::Session> framework.

=head1 AUTHORS

Catalyst Contributors, see Catalyst.pm

=head1 COPYRIGHT

This library is free software. You can redistribute it and/or modify it under
the same terms as Perl itself.

=cut