Recommended modules and plugins
Essential
- Catalyst::Plugin::ConfigLoader - Load config files of various types
- Catalyst::Plugin::Session - Session management
- Catalyst::Plugin::Session::Store::FastMmap - Store session with FastMmap - WARNING: can randomly discard unexpired sessions
- Catalyst::Plugin::Session::Store::File - Store session in files
- Catalyst::Plugin::Session::Store::DBI - Store session using DBI
- Catalyst::Plugin::Session::State::Cookie - Use cookies for tracking session state
- Catalyst::Plugin::Static::Simple - Make serving static pages painless.
- Catalyst::Plugin::AutoRestart - Restart app when specified memory threshold is reached
Tasks
ORM:
- for relational databases, DBIx::Class
for the new hip thing, object databases, use KiokuDB and Catalyst::Model::KiokuDB. With KiokuDB:
For now you have to give up aggregate operations - operations like avg(age) are very expensive compared to SQL. Everything else is in the same order of magnitude. KiokuDB is roughly the same speed as DBIC for inflating objects
and SQLite or MySQL or BDB are all roughly the same speed for extracting records based on the primary key. In fact, BDB is about as fast as using the Hash backend for artificial benchmarks
-- KiokuDB project coordinator Yuval Kogmanfor custom models, use Catalyst::Model::Adaptor
Templating: Template::Toolkit
- Authentication/Authorization:
- Catalyst::Plugin::Authentication - Authentication
- Catalyst::Plugin::Authorization::Roles - Role-based authorization
- Catalyst::Plugin::Authorization::ACL - ACL-based authorization
- Forms: HTML::FormHandler, HTML::FormFu, or if you feel experimental, Reaction
- REST (the general case of getting data from the DB to JavaScript libraries like YUI, Dojo or ExtJS):
- Catalyst::Controller::DBIC::API::REST - "based off a pattern that Luke Saunders and I implemented repeatedly for clients while he was working for us and both found ourselves implementing repeatedly separately after we weren't working together anymore" -- Matt S. Trout
- Catalyst::Controller::REST - helps you define handlers for the HTTP methods (GET, PUT, POST, DELETE) and takes care of automatic data (de)serialization (HTML/XML/JSON etc.) based on the
Content-Type
andAccept
headers - as a last resort, Catalyst::View::JSON
- Sending e-mail: Catalyst::Helper::Model::Email (easy and powerful), or Catalyst::View::Email::Template.
- Parsing e-mails: Email::MIME
- Compress response: Catalyst::Plugin::Compress::Gzip.
- Encryption/decryption: Catalyst::Plugin::Crypt::CBC
- JSON: Catalyst::View::JSON
- RSS or Atom feeds: Catalyst::View::XML::Feed
See also
Showing changes from previous revision. Removed | Added