Plugins for CGI::Application
There are a number of modules on CPAN that have been designed to work as a plugin for CGI::Application. They usually export useful methods that you can use in your application module.
- Ajax - see CGI::Application::Plugin::HTMLPrototype plugin
- CGI::Application::Plugin::ActionDispatch – Catalyst-style URL-to-runmode-mapping.
- CGI::Application::Plugin::AnyTemplate – unified API to multiple templating systems (HTML::Template, Template::Toolkit, Petal)
- CGI::Application::Plugin::Apache – integration with Mod Perl Apache::* modules – Apache::Request, Apache::Cookie, etc.
- CGI::Application::Plugin::AutoRunmode – offers several ways to automatically register run modes
- CGI::Application::Plugin::Authentication – offers several ways to authenticate users. Includes a default login screen.
- CGI::Application::Plugin::BREAD - offers database management (browsing, reading, editing, adding and deleting)
- CGI::Application::Plugin::CaptureIO - A caching plugin.
- CGI::Application::Plugin::CHI - Integration with CHI caching framework
- CGI::Application::Plugin::CompressGzip – add automatic gzip encoding to text output (works under plain cgi and mod_perl!)
- CGI::Application::Plugin::ConfigAuto – easy config file management
- CGI::Application::Plugin::Config::Context – hierarchical, context-based configuration
- CGI::Application::Plugin::Config::Simple – integration with Config::Simple
- CGI::Application::Plugin::ProtectCSRF – protection from Cross Site Request Forgery
- CGI::Application::Plugin::DebugScreen – provide helpful debugging context instead of an internal server error screen.
- CGI::Application::Plugin::DevPopup – Runtime cgiapp info in a popup window
- CGI::Application::Plugin::DBIProfiler - Provides graphical profiling of DBI queries. Currently unreleased.
- CGI::Application::Plugin::DBH – easy DBI access
- CGI::Application::Plugin::Eparam – helps with language encoding of parameters, but currently lacks any documentation or tests.
- CGI::Application::Plugin::ErrorPage – A simple error page shortcut
- CGI::Application::Plugin::Feedback – helps store and return bits of feedback to the user.
- CGI::Application::Plugin::FillInForm – HTML::FillInForm integration
- CGI::Application::Plugin::Forward – Keep the current run mode up to date when forwarding run modes
- CGI::Application::Plugin::HTDot – Integration with HTML::Template::Plugin::Dot
- CGI::Application::Plugin::HTMLPrototype – Integration with HTML::Prototype
- CGI::Application::Plugin::HtmlTidy – adds html validation; optionally it can also make your output (x)html conformant
- CGI::Application::Plugin::I18N – Internationalization (I18N) and localization (l10n) functionality
- CGI::Application::Plugin::JSON – easily produce JSON output
- CGI::Application::Plugin::LinkIntegrity – adds helper methods to check if links have been tampered with.
- CGI::Application::Plugin::LogDispatch – Integration with Log::Dispatch
- CGI::Application::Plugin::MessageStack – a message passing system which can store messages in a session and integrate with templating systems.
- CGI::Application::Plugin::Output::XSV – Simplifies generating XSV output in a run mode via Text::CSV_XS
- CGI::Application::Plugin::PageBuilder – tries to simplify building pages that require multiple templates. See the Any Template plugin for an alternate solution.
- CGI::Application::Plugin::RateLimit – limits runmode call rate per user. Good for limiting login attempts, contact form email submissions, etc.
- CGI::Application::Plugin::Redirect – provides a shortcut for redirecting.
- CGI::Application::Plugin::Routes - brings to Perl some of the goodies of Rails routes by creating a routes table that is parsed at the prerun stage against CGI path_info data
- CGI::Application::Plugin::RunmodeDeclare - declare runmodes with keywords (startmode, errormode, runmode), and optionally pull named parameters
- CGI::Application::Plugin::Session – adds CGI::Session support
- CGI::Application::Plugin::Stash – use Catalyst "stash" syntax as an alternative for param().
- CGI::Application::Plugin::Stream – adds file streaming support
- CGI::Application::Plugin::TemplateRunner – provides a runmode to automatically display HTML::Templates
- CGI::Application::Plugin::TT – adds Template Toolkit support
- CGI::Application::Plugin::ValidateRM – helps validate run modes using Data::FormValidator
- CGI::Application::Plugin::ViewCode – view source and code of the running application.
- CGI::Application::Plugin::YAML – Easy YAML parsing.
Other Add-Ons
Some other modules are designed for use with CGI::Application, even if they do not call themselves a plugin:
- CGI::Application::Dispatch is used to dispatch a request to one or more CGI::Application based objects
- CGI::Application::Dispatch::BuildURI provides consistent URIs when dispatching to making links in templates more consistent.
- CGI::Application::Dispatch::Server provides a stand-alone HTTP server based on C::A::Dispatch...useful for offline development.
- CGI::Application::FastCGI – integration with Fast CGI
- CGI::Application::Generator – a solution for setting up a new CGI::Appication project based on your own templates. (Using Template Toolkit's ttree would be a more general solution.)
- CGI::Application::MailPage – adds functionality to easily mail a web page to a friend.
- CGI::Application::PhotoGallery – a simple photo gallery application
- CGI::Application::Search – integration with Swish-e search engine
- CGI::Application::Server – a simple web server for CGI::Application projects, making it easier to test and work offline without a full Apache install.
- CGI::Application::URIMapping - a dispatcher / permalink builder, implemented as a wrapper of CGI::Application::Dispatch.
- Test::WWW::Mechanize::CGIApp – Test CGI::App-based projects directly with Test::WWW::Mechanize, without a "real" web server.
Writing Plugins
The CGI::Application documentation has the primary reference for how to write a plugin. Here are some supplemental references.
See also
- All CGI::App plugins on CPAN (may be more up-to-date. )
- Plugins Wanted
- Other Useful Modules