Waiting for PHP 5

As described by Zeev Suraski on DevX.com in this article (date of publication not mentionned, seems to be after October 2002), PHP 5 is going to have a true object model, and be able to cooperate with Java or .net at the application server level. The material I've found on this last subject are poor...

  • A presentation (March 25, 2003) full of PARSE ERROR which reminds me my first days doing BASIC
  • The PHP 5 forum is the best exemple of why you need a Wiki
  • The changes in ZendEngine2. The last commit to this file is 2 months old
  • The Objects 2 Howto, last commit to this HowTo is 5 months ago. No real mention of Java into this.
  • Slides of the session "PHP/Web Scripting and JavaTM Technology - Opportunities to integrate and unify environments" at SunOne this year.

I'll do my best to sum up the important points of this session:

  1. Today (PHP 4) you can: encapsulate a PHP process in a servlet call (frightening), or instanciate Java objects from PHP (one JVM created by page execution, awful)
  2. PHP 5 has a true object model, contrary to PHP 4. But nothing is said about Java in this chapter, even if the title is "PHP 5, Java? Technology, and OOP"
  3. The JSR-223 has been submitted June 9, 2003, and is already approved.

So? The JSR-223 ("Scripting Pages in JavaTM Web Applications") goal is to specify a way to bridge Java and scripting languages engines in an application server environment. The requirement is to be able to access to the Java environment and objects from the scripting language. Not mentionned in the JSR, but evoked in PHP 5: subclass Java classes in PHP classes. They propose to put script files in a War, and use either standard mecanisms (servlet mapping), or add a standard extension mecanism. The use of JNI is evoked. Binding to PHP 5 is proposed as the reference implementation of this specification. As of today, PHP 5 is not out, and the JSR-223 Expert Group expects to finish the specification within 12 months.

Given this time to wait, and the time we take to propose technologies to our clients (I still haven't see any PHP development in my department), I guess I won't use this professionally before some years...

This should go in the Java and in the PHP categories... but I'm limited to one, I go for Java.