在如何从PHP Webapp中使用Java类的相关信息中,您可能会发现大量无用且过时的信息,这些都没有帮助。大约一年前,我也遇到了类似的问题,我发现目前唯一成熟、可用于生产环境的方式是PHP/Java Bridge -- 这是您在Sourceforge上找到的那种方式。它的表现比想象的要好,并且不需要了解Java知识(但如果您了解Java,应该考虑编写Web服务并在PHP端使用它)。
桥梁的文档不太明显,但请记住,您应该坚持使用它,而不是阅读描述不同方法的其他资源--不要混淆,即您不必安装任何PHP扩展或其他内容--所有这些都与从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,创建一个包含Bridge本身和您想要使用的库的war文件。该方法在此处描述:
http://php-java-bridge.sourceforge.net/pjb/webapp.php
要将war部署到Tomcat安装中,只需将其放入Tomcat的webapp文件夹中并重新启动即可。
2)更简单的一种:打包一个jar而不是war并运行它(它将使用嵌入式Web服务器,因此您无需安装Tomcat或部署任何内容)。要走这条路,请参考此页面:
http://php-java-bridge.sourceforge.net/pjb/desktop-apps.php
无论哪种方式都可以为您工作(不要看第二个选项中的“桌面”单词,这种方式也可以很好地与您的PHP Web应用程序配合使用)。
在“示例”部分查看如何使用它的示例。您还可以参考我的小型PHP客户端,它使用PHP / Java Bridge在Java中访问Neo4J嵌入式数据库。但是,此示例可能更复杂,并且旨在部署到Tomcat中。无论如何,您都可以了解如何实例化和使用其中的类:
橡树:
Quercus是Caucho Technology的快速、开源、100% Java实现的PHP语言。Quercus是Caucho Technology的Resin应用服务器的一个特性,并内置于Resin中-无需额外下载/安装。使用Resin的开发人员可以启动PHP项目,而不必安装标准的PHP解释器(http://www.php.net),因为Quercus扮演了PHP引擎的角色。