--- Marc Richards [EMAIL PROTECTED] wrote:
Hi,
I am looking for any info or documentation on using PHP in a servlet
environment. I read what I could find on php.net, and found a couple things
using google, but not enough to answer my questions. If someone could tell
me where to look that would be great. I am very interested in seing PHP
more tightly integrated with J2EE as I think that it would add the
reliabilty and scalability of the J2EE platform to the ease of use of PHP,
and allow a smooth transition for the existing PHP user base, who need to do
things with Java.
These are the type of questions I have right now:
1) Is this a pure Java version of PHP?
No. And why would there be ;)
2) What functionality is available? (only core functions? Some extention
libraries)
There are 2 things you can do with ext/java
1) create instances of java objects thru the php's java class, You should have
access of all the methods available for that object
ex.
$java = new Java(java.util.Hashtable);
$java-put(Key, Value);
echo $java-toString();
2) php will run as a servlet engine, meaning you can run php scripts inside
Tomcat. This is done all thru native methods.
3) How does it all work? (pass thru mechanism? are pages compiled as
classes?)
Pages are not compiled as classes they still exists as php scripts.
4) Does this make it eiasier to access Java servlets or EJBs? Does it
increse performance?
Well not sure exactly what you mean by accessing java servlets, You can
access a java servlet by simply
file(http://someserver.com/servlet/SomeJava.jsp?param=go;); That would make
the servelet execute but I might not know what you mean by access. I guess if
you wanted to you could use the Java() class to create an instance of a servlet
class and invoke its methods directly.
Accessing a EJB from a php script should be fine, (this is purely theory never
tried it or even fully thought it thru). If you take the steps that you would
to create a refrence of an EJB from java and replicate it using ext/java it
should work.
Here is a quick example from OpenEJB HelloWorld example
http://openejb.sourceforge.net/hello-world.html
?
$p = new Java(java.utils.Properties);
//The JNDI properties you set depend
//on which server you are using.
$p-put(java.naming.factory.initial, org.openejb.client.JNDIContext);
$p-put(java.naming.provide.url, 127.0.0.1:4201);
$p-put(java.naming.security.principal, myuser);
$p-put(java.naming.security.credentials, mypass);
//Now use those properties to create
//a JNDI InitialContext with the server.
$ctx = new Java(javax.naming.InitialContext, $p );
//Lookup the bean using it's deployment id
$obj = $ctx-lookup(/Hello);
//Be good and use RMI remote object narrowing
//as required by the EJB specification.
//** This may not work with ext/java extension ***
$pro = new Java(javax.rmi.PortableRemoteObject);
$helloHome = new Java(HelloHome);
$ejbHome = $pro-narrow( $obj, $helloHome-class);
//** This may not work with ext/java extension ***
//Use the HelloHome to create a HelloObject
$ejbObject = $ejbHome-create();
//The part we've all been wainting for...
$message = $ejbObject-sayHello();
//A drum roll please.
echo $message;
?
So except for the static access to class from helloHome It should work.
Maybe if I get borred some time i'll try it.
5) Who is responsible for development of this extension?
Sam Ruby was the orig developer. I've played with it. I don't think anyone has
done any new development in awhile.
6) When do you expect a non experimental version will be available
When more intrest becomes of it and someone wants to claim any new
development.
- Brad
__
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/
--
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php