如何使用PHP 5中的Java

Nat*_*enn 7 php java apache windows-7

我已经看了很多关于在PHP中使用Java的教程,但它们似乎与彼此冲突.他们中的许多人都说改变php.ini使用dll文件,但显然现在PHP 5中有"内置"功能.但这需要Tomcat?我是否必须摆脱Apache才能运行它?http://php-java-bridge.sourceforge.net/pjb/installation.php说把.war文件到Tomcat的autodeploy目录,但我没有看到任何所谓的"自动部署"目录.有人会一步一步地解释如何让Java机器(使用Windows 7)与PHP 5和Apache一起工作吗?

cof*_*ake 14

您可能会发现大量有关如何使用PHP Web应用程序中的Java类的无用且过时的信息,这些信息根本没有帮助.大约一年前,我遇到了类似的问题,我发现在生产中使用的唯一方法是PHP/Java Bridge - 你在Sourceforge上找到的那种.它比人们期望的更好,并且不需要Java知识(但是如果你确实了解Java,你应该考虑为此目的编写Web服务并在PHP端使用它).

Bridge的文档不是很明显,但是请记住你应该坚持使用它而不是阅读描述不同方法的其他资源 - 不要混淆,即你不必安装任何PHP扩展或smth - 所有这些都与从PHP调用Java的另一种(通常是过时的和不受支持的)方式有关.

PHP/Java Bridge是一种网络协议,因此您在PHP端唯一需要的是确保在php.ini中启用"allow_url_include"

从Java端,你必须将PHP/Java Bridge绑定到一个空闲端口并监听连接.然后你的PHP应用程序将能够执行Bridge的代理文件的"require_once",该文件将在该端口上可用.就是这样,您可以使用该代理Bridge对象从PHP脚本透明地实例化和调用Java类(它将在后台序列化并传输调用和结果).

如何获取Bridge并将其绑定到某个本地端口有两种选择.

1)复杂的一个:设置一个Tomcat,用桥本身和你想要使用的库创建一个war文件.这种方式在这里描述:

http://php-java-bridge.sourceforge.net/pjb/webapp.php

要将war部署到Tomcat安装中,只需将war放入Tomcat的webapp文件夹并重新启动它.

2)更简单的一个:打包jar而不是war并运行它(它将使用嵌入式web服务器,因此你不必安装Tomcat并部署任何东西).要通过这种方式,请参阅此页面:

http://php-java-bridge.sourceforge.net/pjb/desktop-apps.php

这两种方式都适合你(不要在第二个选项中查看"桌面"字样,这种方式也适用于你的PHP webapp).

有关如何在"示例"部分使用它的示例(请参阅).您也可以参考我的小型PHP客户端,该客户端使用PHP/Java Bridge与Java中的Neo4J嵌入式数据库进行通信.但是,此示例可能更复杂,并且它旨在部署到Tomcat,无论如何,您可以了解如何实例化并使用它中的类:

https://github.com/coffeesnake/neo4j-php-wrapper