纯java PHP引擎——Quercus
由于公司项目的需要,最经在研究Quercus一个纯java的php引擎。项目这两个需要做的就是将该引擎裁剪,做一个相对安全的版本,提供给ISV使用,同时,在引擎中提供默认的接口供调用。所以先研究了一下,在Quercus引擎的支持下,PHP如何与java集成。
以下是学习到的几点:
1、如果使用 Resin-IoC/WebBeans来组织应用的服务到脚本中,那么脚本中就可以直接获取到配置的服务的单例实例的引用,使用方式如下
<?php
$demo_manager = java_bean("DemoeManager");
$demo = $demo_manager->findData("demoId");
foreach ($demo->getDatas() as $data) {
echo $data . "\n";
}
?>
2、另外一种可以通过new Java()方式,以class完整名称以及构造函数参数作为参数来生成对应的java 对象,例如
<?php
$a = new Java("java.util.Date", 123);
echo $a->time;
?>
3、Quercus还支持,类似于java 的引用方式,即,在PHP中使用import语句引入class,使用new关键字来创建对象。
<?php
import java.util.Date;
$a = new Date(123);
echo $a->time;
?>
如果是使用Resin框架,会自动加载 WEB-INF/classes/classname.php中配置的的class。
4、在Quercus中,PHP的语法用于激活java对象的方法,下面说明一下通常的方法调用和属性的get和set
<?php
import java.util.Date;
$a = new Date(123);
echo $a->getTime(); # calls getTime()
echo $a->setTime(456); # calls setTime(456)
echo $a->time; # calls getTime()
$a->time = 456; # calls setTime(456)
?>
5、在Quercus中,java类被引入了,静态方式和静态属性是可以访问的
<?php
import java.util.Calendar;
$calendar = Calendar::getInstance();
var_dump($calendar);
?>
或者使用new java_class()方式获得class对象
<?php
$class = java_class("java.lang.System");
# System.in
$in = $class->in;
# System.currentTimeInMillis();
$time = $class->currentTimeInMillis();
?>
6、关于java对象中的方法重载问题,PHP本身是不支持函数重载的,对参数个数的重载支持得还不错,但是参数个数相同,参数类型不同的重载
支持得就不太好了。我觉得是由于PHP本身所类型有关。比如下面的定义的java类
import com.caucho.quercus.module.Abs
相关文档:
List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1 List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
JAVA程序
JAVA API JAVA 虚拟机
JAVA 虚拟
操作系统
硬件平台
1.Java程序相关问题——Java虚拟机
Java虚拟机——在真实机器中用软件模拟实现的一种抽象的机器。(Java虚拟机规范)
&n ......
PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。
扩展API的引入使PHP取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。。扩展主要的思想是 ......