3 Catalyst::Manual::Plugins - Catalyst Plugins (and Components)
7 This section lists the some of the plugins and components that are
8 available to extend the runtime functionality of Catalyst. The plugins
9 are not distributed with Catalyst but should be available from CPAN.
10 They typically require additional modules from CPAN. We will try to
11 keep this document up to date, but please check CPAN directly for
12 the latest and greatest.
16 =head2 Catalyst::Plugin::Authentication::CDBI
18 L<Catalyst::Plugin::Authentication::CDBI> is a CDBI (C<Class::DBI>)
19 authentication plugin. Note that it requires a session plugin.
21 =head2 Catalyst::Plugin::Authentication::LDAP
23 L<Catalyst::Plugin::Authentication::LDAP> is a plugin allowing you
24 to authenticate your web users using an LDAP server.
26 =head2 Catalyst::Plugin::Email
28 L<Catalyst::Plugin::Email> sends email with Catalyst and L<Email::Send>
29 and L<Email::MIME::Creator>.
31 =head2 Catalyst::Plugin::Browser
33 L<Catalyst::Plugin::Browser> extends L<Catalyst::Request> by adding the
34 capability of browser detection. It returns an instance of
35 L<HTTP::BrowserDetect>, which lets you get information from the client's
38 =head2 Catalyst::Plugin::Compress::Zlib
40 L<Catalyst::Plugin::Compress::Zlib> supplies Zlib compression for
43 =head2 Catalyst::Plugin::Compress::Bzip2
45 L<Catalyst::Plugin::Compress::Bzip2> compresses a response using
48 =head2 Catalyst::Plugin::FillInForm
50 L<Catalyst::Plugin::FillInForm> is plugin for Catalyst based on
51 C<HTML::FillInForm>, which describes itself as a module to automatically
52 insert data from a previous HTML form into the HTML input, textarea,
53 radio buttons, checkboxes, and select tags. C<HTML::FillInForm> is a
54 subclass of C<HTML::Parser> and uses it to parse the HTML and insert the
55 values into the form tags.
57 =head2 Catalyst::Plugin::FormValidator
59 L<Catalyst::Plugin::FormValidator> is a form validator plugin that uses
60 L<Data::FormValidator> to validate and set up form data from your
61 request parameters. It's a quite thin wrapper around that module, so
62 most of the relevant information can be found there.
64 =head2 Catalyst::Plugin::Geography
66 L<Catalyst::Plugin::Geography> allows you to retrieve various kinds
67 of geographical information. You can retrieve the country or code from
68 the current user, from a given IP address, or from a given hostname.
70 =head2 Catalyst::Plugin::I18N
72 L<Catalyst::Plugin::I18N> is an internationalization plugin for
73 Catalyst. Supports C<mo>/C<po> files and Maketext classes under your
74 application's I18N namespace.
76 =head2 Catalyst::Plugin::Observe
78 L<Catalyst::Plugin::Observe> provides the ability to register AOP-like
79 callbacks to specific Engine events. Subclasses L<Class::Publisher>.
81 =head2 Catalyst::Plugin::Pluggable
83 L<Catalyst::Plugin::Pluggable> is a plugin for pluggable Catalyst
86 =head2 Catalyst::Plugin::Prototype
88 L<Catalyst::Plugin::Prototype> is a plugin for the Prototype JavaScript
89 library. This Plugin allows you to easily implement AJAX functionality
90 without actually knowing Javascript.
92 =head2 Catalyst::Plugin::Session::FastMmap
94 L<Catalyst::Plugin::Session::FastMmap> is a session plugin for Catalyst
95 based on C<Cache::FastMMap>, which uses an mmap'ed file to act as a
96 shared memory interprocess cache.
99 =head2 Catalyst::Plugin::Static
101 L<Catalyst::Plugin::Static> is a plugin to serve static files from C<<
102 $c->config->{root} >>/<< action >>/.
105 =head2 Catalyst::Plugin::SubRequest
107 L<Catalyst::Plugin::SubRequest> is a plugin to allow subrequests to
108 actions to be made within Catalyst. Nice for portal software and such.
110 =head2 Catalyst::Plugin::Textile
112 L<Catalyst::Plugin::Textile> is a persistent Textile processor for
113 Catalyst that uses C<Text::Textile>, a Perl-based implementation of Dean
114 Allen's Textile syntax. Textile is shorthand for doing common formatting
115 tasks (see L<http://textism.com>).
117 =head2 Catalyst::Plugin::Unicode
119 L<Catalyst::Plugin::Unicode> provides a Unicode-aware Catalyst. On
120 request, it decodes all params from UTF-8 octets into a sequence of
121 logical characters. On response, it encodes the body into UTF-8 octets.
123 =head2 Catalyst::Plugin::XMLRPC
125 L<Catalyst::Plugin::XMLRPC> plugin allows your Controller class to
126 dispatch XMLRPC methods from its own class.
129 =head1 COMPONENT MODULES
131 =head2 Catalyst::Model::CDBI
133 L<Catalyst::Model::CDBI> is the C<Class::DBI> (CDBI) module class. It
134 is built on top of C<Class::DBI::Loader>, which automates the
135 definition of C<Class::DBI> sub-classes by scanning the underlying
136 table schemas, setting up columns and primary keys.
138 =head2 Catalyst::Model::CDBI::Plain
140 L<Catalyst::Model::CDBI::Plain> is a neutral interface to the
141 C<Class::DBI> module, which does not attempt to automate table
142 setup. It allows the user to manually set up C<Class::DBI>
143 classes, either by doing so within the Catalyst model classes
144 themselves, or by inheriting from existing C<Class::DBI>
147 =head2 Catalyst::Model::CDBI::CRUD
149 L<Catalyst::Model::CDBI::CRUD> is a subclass of
150 C<Catalyst::Model::CDBI> with additional CRUD (create, retrieve,
151 update, delete) methods.
153 =head2 Catalyst::Model::Plucene
154 L<Catalyst::Model::Plucene> is the model class for the Plucene
157 =head2 Catalyst::View::HTML::Template
159 L<Catalyst::View::HTML::Template> is a View component for
160 displaying your stash with L<HTML::Template>.
162 =head2 Catalyst::View::PSP
164 L<Catalyst::View::PSP> is a View component for displaying your
165 stash using PSP, a Perl extension implementing a JSP-like
166 templating system; see L<Text::PSP>.
168 =head2 Catalyst::View::Petal
169 L<Catalyst::View::Petal> is a View component for displaying
170 your stash using Petal, the Perl Template Attribute Language,
171 an XML-based templating system; see L<Petal>.
173 =head2 Catalyst::View::Mason
175 L<Catalyst::View::Mason> is a View component for displaying your stash
178 =head2 Catalyst::View::TT
180 L<Catalyst::View::TT> is a Template Toolkit view. See
185 Andrew Ford E<lt>A.Ford@ford-mason.co.ukE<gt>
186 Marcus Ramberg E<lt>mramberg@cpan.orgE<gt>
187 Jesse Sheidlower E<lt>jester@panix.comE<gt>
191 This program is free software, you can redistribute it and/or modify it under
192 the same terms as Perl itself.