集成开发practice_PHP与Java强集成PHP和Java集成开发
很久以前,有人在www上看到并听到了天空中的亮光,那是Java语言,同时,在另一个地方,一个梦想家也看到了一个亮点php集成开发工具,那就是PHP。
随着时间的流逝,这两个亮点越来越亮,很快,它们就被程序员喜欢上了,有人纳闷:如果他们相遇会发生什么?有没有可能结合他们的优势?
尝试在PHP和Java之间建立一座桥梁,使用这座桥
要在这两个实体之间建立通信通道,借助此桥,您可以使用 Java 开发类,然后在 PHP 中调用它们,同样,您可以在 Java 桌面或 Web 应用程序中使用 PHP 脚本。
在本文中,您将了解如何:
安装和配置 PHP/Java 桥
在 PHP 脚本中使用 Java 类
在 Java 类中使用 PHP 脚本
在 JSP 页面中使用 PHP 脚本
那让我们开始吧!
安装和配置 PHP/Java 桥
最新的 PHP/Java 桥 zip 包可供下载,安装过程取决于选择哪个 Java 平台通过此桥与 PHP 脚本交互。
◆对于J2SE,安装特别简单:
◆ 安装 J2SE 1.6 或更高版本
◆ 安装 PHP 5.1.4 或更高版本
解压缩 php-java-bridge_5.2.2_j2EE .zip包
在命令提示符下,单步执行刚刚解压缩的目录并输入:
?>java ?classpath JavaBridge.war TestInstallation
在这个文件夹中,你应该看到一个包含四个.jar文件的ext目录,复制JavaBridge.jar和php-script,并.jar到J2SE安装目录中的ext文件夹(通常是{JAVA_HOME}/jre/lib/ext)。
对于 J2EE,请执行以下安装步骤:
将 JavaBridge.war 文件复制到 J2EE 服务器或 servlet 引擎(Tomcat、Resin 等)下的 auto_deploy 文件夹中。
根据您的应用程序重命名文件php集成开发工具,
然后重新启动 J2EE 服务器并等待手动部署过程创建与 .war 文件关联的目录,在此反例中,应用程序称为 appName.war。
从浏览器测试新应用程序,键入::8080/appName,然后单击test.php。
如果 J2EE 服务器在不同的主机和端口上运行,请相应地更改参数。
注意:如果要在 Apache 或 IIS 上运行 J2EE/PHP 应用程序,请将包含 appName 的目录复制到 Apache/IIS 的文档根目录。
在 PHP 脚本中使用 Java 类
首先,您必须知道 PHP/Java 桥为在 PHP 脚本中集成 Java 类创建了哪些特殊函数(PHP 类),包括:Java:
它允许您访问给定名称的Java类型,例如:
◆java(“java.lang.System”)->getProperties();
java_autoload:它允许您将一组 Java 库加载到当前的 PHP 脚本中,例如:
◆java_autoload(“my_1.jar;my_2.jar“);
java_cast:它允许您将 Java 对象转换为 PHP 值,例如:
$mystr=new java(“java.lang.String”,“9”); $phpnr=java_cast($mystr,“整数”); echo $ phpnr;
◆java_is_null:可以使用它来检测该值是否为空,例如:
◆java_is_null(java(“java.lang.System”)->; getProperty(“my_prop”))
◆ java_session:可以使用它来返回对话句柄,例如:
$session = java_session();
◆ java_values:您可以使用它来评估对象并提取其内容(仅当此操作可以时),例如:
$result = java_values($calcinstance->addAB($term_1,$term_2));
为了使用这个函数,你的PHP应用必须包含对应的PHP类,最重要的类是Java.inc,目录下有一个完整的类列表appName/java,通过Java.inc,你可以得到Java类的例子,比如:
$calcinstance=新Java(“计算器。计算器豆“);
注意:有关函数及其详细信息的更多信息,请参见 PHP/Java 桥的安装目录/文档/API。在 PHP 脚本中使用 Java 类
在 Java 类中使用 PHP 脚本
为了在Java应用程序中调用PHP,您必须非常熟悉Java API,此API最重要的类是:
javax.script.ScriptEngineManager:此类扩展了java.lang.Object 类,并为 ScriptEngine 类提供了实例化机制。
javax.script.ScriptEngine:这是一个Java接口,通过AbstractScriptEngine,InteractivePhpScriptEngine,InvocablePhpScriptEngine,InvocablePhpScriptEngine等函数实现,包括每个Java ScriptEngine中预期功能的全部功能,实现类InvocablePhpServletScriptEngine,PhpScriptEngine和PhpServletScriptEngine。
javax.script.Invocable:此套接字提供了一个函数,允许Java应用程序在脚本编译器下调用中间层代码。
注意:在 /documentation/server/documentation/API 目录中有关于类及其详细信息的更多详细信息。
PHP 脚本中的 Java 类示例
现在您已经了解了 PHP/Java 的基础知识
桥上,你可以开始开发你的第一个 PHP/Java 应用了,这里的反例比较简单,它是一个 PHP 脚本,实现了计算器的 +,-,*、/四个基本操作,Java 将是这个应用的核心引擎,因为估计结果是由一个名为 CalculatorBean 的 Java 类提供的。换句话说,PHP 会将操作对象传递给 Java 函数,然后接收估计结果,并将结果显示给用户。
CalculatorBean 类为运算符定义了四个函数,一个用于返回结果,完整代码如下
包计算器;
公共类计算器豆实现
java.io.Serializable {
私人浮动结果;
public CalculatorBean(){ this.result = 0.0f; }
公共流通量 addAB(浮点数 a, 浮点数 b)
{ this.result = a+b; return result; }
公众持股量子AB(浮点数a,浮点数b)
{this.result = a-b; return result; }
公众持股量 mplAB(浮点数 a, 浮点数 b)
{ this.result = a*b; return result; }
公众持股量 divAB(浮点数 a, 浮点数 b)
{ this.result = a/b;
return result; public float getResult(){
返回这个结果;
编译此 Java 源代码时,结果是一个名为 calculator.jar 的.jar文件,该文件被复制到 appName/WEB-INF/lib 目录中。
接下来,您可以编译
一个PHP脚本调用上面的Java类,使用上面描述的函数,可以编译计算器.php文件,参考
如果你在Tomcat服务器下进行测试,请将计算器.php放在appName目录中
(本地主机:8080),输入浏览器的地址栏
:8080/appName/calculator.php,按回车键,您应该听到如图 1 所示的页面:
JSP 页面中的 PHP 脚本示例
如果你想使用 PHP 的随机函数来获取一个介于 0 和最大值之间的随机数,你可以像下面这样使用 ScriptEngine
<%
javax.script.ScriptEngine e =
php.java.script.EngineFactory.getInvocablePhpScriptEngine
(此,应用程序,请求,响应);
e.getContext().setWriter(out);
e.eval (“<?php function randomNumber($maxim)
{ return rand(0,java_values($maxim)); }; ?>“);
javax.script.Invocable i = (javax.script.Invocable) e;
对象结果 = 空;
result = i.invokeFunction(“randomNumber”,new
Object[]{new Integer(100)});
e.eval ((java.io.Reader)null);
刷新调用XXX生成的输出
out.println(“从servlet打印的随机数: ” + 结果);
%>
进入::
8080 / appName/random.jsp在浏览器地址栏中,按Enter键,您可能会看到如图所示的结果:
Java 桌面应用程序中的 PHP 脚本
使用 javax.script.ScriptEngineManager 和 javax.script.ScriptEngine 类可以轻松实现此任务,其中显示了具有与上述相同功能的 J2SE/PHP 应用程序,您可以在命令提示符下对其进行测试:
?gt; java –classpath {place here the application classpath} Javaphp
使用 jrunscript 工具运行 PHP 脚本Java
附带了一个名为jrunscript的工具,它允许您使用Java为PHP脚本添加参数,例如:
jrunscript -l php {phpFile}.php
你好.php脚本如下:
<?php
呼应“你好”;
你可以运行jrunscript:如下所示
.. > jrunscript -l php 你好.php
更好地工作
本文只对 PHP/Java 桥做一个简要的介绍,希望对你有所帮助,PHP/Java 桥架起了 PHP 和 Java 这两种中级编程语言之间的桥梁,如果你觉得这项技术对你的项目有帮助,那就别犹豫了,开始工作吧!
参考地址: