PHP scripting engine plugin v0.1

Daniel Ruthardt <[email protected]> Mon, 11 Aug 2008 16:57:51 +0200
Newsgroups gmane.comp.java.helma.general
Message-ID <[email protected]>
Hi list,

I've been working on a PHP scripting engine plugin for Helma 1.x during 
the last two weeks.
Although not finished. complete, or completely tested yet, I feel it is 
ready to be released to the public.
A sample application is included.

The plugin is based on the Quercus PHP scripting engine [1] by Caucho, 
which is part of the Resin [2] application server. Caucho offers both a 
GPLv2 and a commercial pro version. So far, the plugin makes use of the 
GPLv2 version only, which lacks Java bytecode compilation support. 
Caucho claims, that the commercial pro version (which offers Java 
bytecode compilation support is 4x faster than mod_php. I did some small 
standalone (i.e. without Helma) tests, which resulted in the pro version 
being at least twice as fast as mod_php and sometimes even faster as 
compiled Rhino JS.

You can download the plugin from [3]. The release file is meant as 
overlay over a Helma 1.x (I only tested it with Helma 1.6.2) 
distribution. So to test it, simply extract a new Helma distribution [4] 
file and extract the plugin release file over it. The plugin release 
file contains three new libraries (quercus.jar, resin.jar and warp.jar), 
a test application (welcomePhp), an internal database for the test 
application (db/welcomePhp), static files for the test application and 
most important a simple script to start Helma (start_with_php.sh).

IMPORTANT:
For some reason (still need to find out why), the plugin only works when 
you start Helma like the included script file does it (i.e. it does not 
work, if you start Helma with the original start.sh script file which 
starts Helma via the launcher.jar).

About Warp:
Just to have it mentioned: the php plugin is hosted at Sourceforge. 
Warp, the project under which it is hosted, is a (my) fork of Helma 1.x. 
The intention of the fork is to rewrite and extend a pluggable Helma 1.x 
from the inside (compared to Helma NG). The fork allows me to do that in 
a flexible and permissive way. No need to look at the SVN yet, the 
current version does not differ from Helma (except being reformatted a 
little bit). Although it will soon differ substantially, it will always 
remain compatible to Helma 1.x (including future versions, at least that 
is the main goal). Additionally I will always provide functionality as 
Helma 1.x plugins (like the php plugin) too, if possible (if it is 
possible to have such functionality as Helma plugin). What was known as 
Warp before (the Warp repository implementation) [5] will soon be 
rewritten and included in Warp.

Kind regards,
Daniel

[1] http://quercus.caucho.com/
[2] http://caucho.com/resin/
[3] 
http://sourceforge.net/project/showfiles.php?group_id=235880&package_id=287402
[4] http://dev.helma.org/download/
[5] http://dev.helma.org/wiki/Related+Projects/#Warp