JPHP最新進展v0.6

x3d發表於2015-02-07

專案地址: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)

文件



相關文章