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/