项目地址:https://github.com/jphp-compiler/jphp
旧文:http://www.cnblogs.com/x3d/p/3631386.html
旧文2:http://www.cnblogs.com/x3d/p/3642287.html
看过代码,就感觉这个项目应该还欠缺一点技术方面的东西:所有从PHP访问Java的功能必须要编写对应的Wrapper,而不能直接在PHP中访问Java类;这方面是不如Quercus的,但Quercus的社区版是解释型而不是编译型的,对于有完美情节的人来说,又是一种遗憾。
PHP Compiler for JVM
JPHP是使用Java虚拟机环境的一种新的PHP实现,支持PHP(5.5+)的很多特性。
JPHP是一种编译器,就像javac
, 它把php源码编译成JVM字节码,然后在Java VM上运行。
- 支持: JDK 1.6+ (OpenJDK, Oracle)
- 技术支持论坛: https://groups.google.com/d/forum/jphp-compiler
定位
JPHP不是Zend PHP 引擎或者Facebook HHVM的替代品。我们没有想过让JPHP实现整个zend运行库,如Curl、PRCE等。
我们的项目开始于2013年10月。其创建原因:
- 以PHP语言使用java的库
- 通过JIT及JVM提升PHP性能
- 把Zend 这样丑陋的运行时库替换成更好的运行时库
- 让PHP语言不仅仅在web领域使用
- 字符串unicode化支持、线程支持
特性
- JIT (1x - 10x 速度快于 PHP 5.5)
- Optimizer (常量表达式、内联函数等)
- 在PHP代码中使用java的库和
- 字符串的Unicode化 (UTF-16, 像Java那样)
- 线程化 - Threading, Sockets
- Environment architecture (like sandbox objects in runkit zend extension).
- GUI (基于Swing, 并改进了 - 有了更多灵活的布局方式)
- 内嵌类与函数的缓存系统
- 可选热重载类和函数
- 可以在 Android 操作系统上用哦
语言特性
(不带zend运行时库)
- PHP 5.5+ (with OOP)
- 类Spl autoloading
- Iterators, ArrayAccess, Serializable, 等等
- 类反射
-
__debugInfo
用于 var_dump (php 5.6) -
**
操作符(php 5.6) - Constant Scalar Expressions (with constants) (php 5.6)
JPHP尚未支持的?
- 导入命名空间化的函数 (php 5.6)
- 可变参数函数的专用语法 (php 5.6)
- 参数拆箱 (php 5.6)
文档
- 最新文档在这: http://jphp-docs.readthedocs.org/
- 你来贡献文档: fork 它: https://github.com/jphp-compiler/docs