Catalyst::Manual::Components(3p)

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

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 Catalyst. Be sure to check the Catalyst:: and CatalystX:: namespaces for additional components, and consult the mailing list ( <http://wiki.catalystframework.org/wiki/Support> ) for advice on the current status or preferred use of your chosen plugin/framework.

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

  Catalyst::Plugin::Account::AutoDiscovery
Provides Account Auto-Discovery for Catalyst.

  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.

  Catalyst::Plugin::Alarm

  Catalyst::Plugin::AtomPP
Allows you to dispatch AtomPP methods.

  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.

  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 "realms", so that you can authenticate users in different ways in different parts of your application.

This, however, has involved deprecating all classes in the "Catalyst::Plugin::Authentication::Credential::" and "Catalyst::Plugin::Authentication::Store::" namespaces.

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

Available Credential modules:

Catalyst::Authentication::Credential::AuthTkt

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

Catalyst::Authentication::Credential::FBConnect

Allows you to authenticate Facebook users using the FBConnect API.

Catalyst::Authentication::Credential::Flickr

Provides authentication via Flickr, using its API.

Catalyst::Authentication::Credential::HTTP

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

Catalyst::Authentication::Credential::HTTP::Proxy

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

Catalyst::Authentication::Credential::Kerberos

Allows you to authenticate your users against a Kerberos server.

Catalyst::Authentication::Credential::OAuth

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

Catalyst::Authentication::Credential::OpenID

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

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 Catalyst::Plugin::Authentication.

Catalyst::Authentication::Credential::RPX

Allows you to authenticate users using the RPX protocol.

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.

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.

Catalyst::Authentication::Credential::Authen::Simple

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

Available Store modules:

Catalyst::Authentication::Store::DBIx::Class

Does authentication and authorization against a DBIx::Class model.

Catalyst::Authentication::Store::Htpasswd

Uses Authen::Htpasswd to let your application use ".htpasswd" files for its authentication storage.

Catalyst::Authentication::Store::AuthTkt

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

Catalyst::Authentication::Store::DBI

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

Catalyst::Authentication::Store::Htpasswd

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

Catalyst::Authentication::Store::KiokuDB

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

Catalyst::Authentication::Store::LDAP

Authenticates users using an LDAP server.

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.

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.

Catalyst::Authentication::Store::RDBO

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

Catalyst::Authentication::Store::Tangram

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

Catalyst::Authentication::Store::DBIx::Class

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

Catalyst::Authentication::Store::Jifty::DBI

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

Catalyst::Authentication::User::Hash

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

  Catalyst::Plugin::Authorization::ACL
This module provides Access Control List style path protection, with arbitrary rules for Catalyst applications. It operates only on the Catalyst private namespace, at least at the moment.

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

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

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

  Catalyst::Plugin::Cache
Provides a cache method enabling easy access to a shared cache implementing the "Cache::" APO, such as:

FastMmap
FileCache
BerkeleyDB
Memcached
CHI

  Catalyst::Plugin::CGI::Untaint

  Catalyst::Plugin::Charsets::Japanese
Provides specific charset handlers for the Japanese charsets.

  Catalyst::Plugin::Compress::Bzip2

  Catalyst::Plugin::Compress::Deflate

  Catalyst::Plugin::Compress::Gzip

  Catalyst::Plugin::Compress::Zlib

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

  Catalyst::Plugin::ConfigurablePathTo

  Catalyst::Plugin::Devel::InPageLogs

  Catalyst::Plugin::Devel::InPageLogs::Log

  Catalyst::Plugin::Dojo

  Catalyst::Plugin::Dumper

  Catalyst::Plugin::Email::Japanese

  Catalyst::Plugin::Email::Page

  Catalyst::Plugin::FillInForm
A plugin based on 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. HTML::FillInForm is a subclass of HTML::Parser and uses it to parse the HTML and insert the values into the form tags.

  Catalyst::Plugin::Flavour

  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.

  Catalyst::Plugin::Geography::Implementation

  Catalyst::Plugin::HashedCookies

  Catalyst::Plugin::HTML::Scrubber

  Catalyst::Plugin::I18N
An internationalization plugin for Catalyst. Supports "mo"/"po" files and Maketext classes under your application's I18N namespace.

  Catalyst::Plugin::JSONRPC

  Catalyst::Plugin::Message

  Catalyst::Plugin::MobileAgent

  Catalyst::Plugin::Observe
Provides the ability to register AOP-like callbacks to specific Engine events. Subclasses Class::Publisher.

  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.

  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.

  Catalyst::Plugin::Params::Nested

  Catalyst::Plugin::Params::Nested::Expander

  Catalyst::Plugin::Pluggable
A plugin for pluggable Catalyst applications.

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

  Catalyst::Plugin::Redirect
Allows for easy redirecting with the Catalyst app.

  Catalyst::Plugin::RequestToken

  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.

  Catalyst::Plugin::Scheduler

  Catalyst::Plugin::Session
The 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.

  Catalyst::Plugin::Session::PerUser

  Catalyst::Plugin::Session::State

  Catalyst::Plugin::Session::State::Cookie

  Catalyst::Plugin::Session::State::URI

  Catalyst::Plugin::Session::Store

  Catalyst::Plugin::Session::Store::CDBI

  Catalyst::Plugin::Session::Store::DBI

  Catalyst::Plugin::Session::Store::DBIC

  Catalyst::Plugin::Session::Store::Dummy

  Catalyst::Plugin::Session::Store::FastMmap

  Catalyst::Plugin::Session::Store::File

  Catalyst::Plugin::Session::Store::Memcached

  Catalyst::Plugin::Session::Test::Store

  Catalyst::Plugin::Singleton

  Catalyst::Plugin::Snippets

  Catalyst::Plugin::SRU
Allows your controller class to dispatch SRU actions ("explain", "scan", and "searchRetrieve") from its own class.

  Catalyst::Plugin::StackTrace

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

  Catalyst::Plugin::Static::Simple
Serves static files in your application without requiring a single line of code.

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

  Catalyst::Plugin::SuperForm
An interface to the HTML::SuperForm module, enabling easy HTML form creation.

  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.

  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!

  Catalyst::Plugin::Upload::Basename

  Catalyst::Plugin::Upload::MD5
Computes the MD5 message digest of uploaded files.

  Catalyst::Plugin::Upload::MIME

  Catalyst::Plugin::UploadProgress

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

CONTROLLERS

  Catalyst::Controller::HTML::FormFu
Catalyst integration for HTML::FormFu.

MODELS

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

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

  Catalyst::Model::DBIC::Schema
A DBIx::Class model class that can use either an explicit DBIx::Class::Schema or one automatically loaded from your database via DBIx::Class::Schema::Loader.

  Catalyst::Model::EVDB

  Catalyst::Model::File

  Catalyst::Model::Gedcom

  Catalyst::Model::LDAP

  Catalyst::Model::NetBlogger

  Catalyst::Model::Plucene
A model class for the Plucene search engine.

  Catalyst::Model::Proxy

  Catalyst::Model::SVN

  Catalyst::Model::Xapian
A model class for the Xapian search engine.

VIEWS

  Catalyst::View::Atom::XML

  Catalyst::View::Chart::Strip

  Catalyst::View::CSS::Squish

  Catalyst::View::Embperl

  Catalyst::View::GD::Barcode

  Catalyst::View::GraphViz

  Catalyst::View::HTML::Template
A view component for rendering pages with HTML::Template.

  Catalyst::View::Jemplate

  Catalyst::View::JSON

  Catalyst::View::Mason
A view component for rendering pages with HTML::Mason.

  Catalyst::View::MicroMason

  Catalyst::View::PHP

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

  Catalyst::View::Petal
A view component for rendering pages using Petal, the Perl Template Attribute Language, an XML-based templating system. See Petal.

  Catalyst::View::TT
A view component for rendering pages with Template Toolkit. See Template::Manual.

  Catalyst::View::XSLT

  Catalyst::View::vCard

Actions

  Catalyst::Action::RenderView
Creates a sane, standard end method for your application.

OBSOLETE MODULES

  Catalyst::Controller::BindLex
Lets you mark lexical variables with a "Stashed" attribute, automatically passing them to the stash. Discouraged by the author.

  Catalyst::Model::DBIC
Replaced by Catalyst::Model::DBIC::Schema.

  Catalyst::Plugin::Authentication::Basic::Remote
Replaced by Catalyst::Plugin::Authentication::Credential::HTTP.

  Catalyst::Plugin::Authentication::CDBI
Replaced by Catalyst::Plugin::Authentication::Store::DBIC.

  Catalyst::Plugin::Authentication::CDBI::Basic
Replaced by Catalyst::Plugin::Authentication::Credential::HTTP.

  Catalyst::Plugin::Authentication::LDAP
Replaced by Catalyst::Plugin::Authentication::Store::LDAP.

  Catalyst::Plugin::Authentication::Simple
Replaced by Catalyst::Plugin::Authentication.

  Catalyst::Plugin::Authorization::CDBI::GroupToken

  Catalyst::Plugin::CDBI::Transaction

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

  Catalyst::Plugin::DefaultEnd
Replaced by Catalyst::Action::RenderView

  Catalyst::Plugin::SanitizeUrl

  Catalyst::Plugin::SanitizeUrl::PrepAction

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

AUTHORS
Catalyst Contributors, see Catalyst.pm

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