JPHP最新进展 v0.6

项目地址: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上运行。

定位

JPHP不是Zend PHP 引擎或者Facebook HHVM的替代品。我们没有想过让JPHP实现整个zend运行库,如Curl、PRCE等。

我们的项目开始于2013年10月。其创建原因:

  1. 以PHP语言使用java的库
  2. 通过JIT及JVM提升PHP性能
  3. 把Zend 这样丑陋的运行时库替换成更好的运行时库
  4. 让PHP语言不仅仅在web领域使用
  5. 字符串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)

文档


原文地址:https://www.cnblogs.com/x3d/p/jphp-v06.html