Ports of CGI::Application to other languages

PHP

Cgiapp.class.php

This is a complete and tested port of CGI::Application to PHP. It utilizes Smarty as its default templating engine, much as CGI::Application uses HTML::Template, due to its prevalence and acceptance in the PHP community. Due to PHP's built-in session support, it also adds two methods, s_param() and s_delete(), to handle session parameters. A number of static methods have also been included to facilitate error handling and array/hash conversion. For more information, read the documentation.

CGI_Application.php

This port of CGI::App and HTML::Template to PHP is a work in progress. No documentation for this version is available at this time.

Python

cgi_app

This module is a port of Jesse Erlbaum's popular CGI::Application Perl module to python written by Anders Pearson.

Review of cgi_app by William Mc Kee, Feb. 28, 2004

Recently, I had the opportunity to try implementing a web application using
this module for a client who has a significant investment in Python. Although I
am new to Python, I thought the cgi_app module may allow me to develop in a
framework with which I was familiar. The application was being deployed onto a
Windows 2000 server running Apache2.

With my prior knowledge of CGIApp and the examples provided with cgi_app, I was
able to setup a sample script fairly quickly. Unfortunately I could not get to
the stage of running the application due to template problems. The htmltmpl
module (based on HTML::Template) had been modified to work with cgi_app.
However, it had only been tested under GNU/Linux, and I encountered errors when
running it under Windows which I did not have the time to track down.

I turned to a couple of alternative templates based on the
[http://zope.org/Wikis/DevSite/Projects/ZPT/TAL%20Specification%201.4/FrontPage
Zope Template Attribute Language]. Unfortunately, the two which looked most
promising (!SimpleTAL and !ZopePageTemplates) were not well-suited for the
CGIApp model. !SimpleTAL sends output to a file whereas !ZopePageTemplates
prints output to STDOUT. I could have used !SimpleTAL and simple read the
contents of the file into a buffer to pass back to cgi_app. However, this
solution seemed inefficient and potentially dangerous. I can only presume that
!SimpleTAL was written for offline template processing.

After hitting this wall, I paused for the day. Upon further reflection, I
decided that developing the application in Perl would be a far more efficient
for me since I already have a complete suite of modules in place for doing
everything from template processing to database access to logging to session
management to testing. I hope that work on the cgi_app module continues and
think that it would provide a very useful framework for Python application
developers. Hopefully the problems I encountered with template libraries will
be corrected over time so that the CGIApp framework can grow in the Python
community. 

Ruby

cgi-application.rb

http://raa.ruby-lang.org/project/cgi-application/

See also