ホームページ  >  記事  >  バックエンド開発  >  PHP ソース コードを JVM バイトコードにコンパイルするコンパイラー: JPHP

PHP ソース コードを JVM バイトコードにコンパイルするコンパイラー: JPHP

WBOY
WBOYオリジナル
2016-07-25 09:12:391575ブラウズ

JPHP は javac に似たコンパイラーで、PHP ソースコードを JVM バイトコードにコンパイルできます。そして、Java 仮想マシン上で PHP プログラムを実行できるようになりました。 多くの PHP5.3+ 機能をサポートしています。 JPHP は JRuby や Jython に似ています。

サポート: JDK 1.6+ (OpenJDK、Oracle)。

目標

JPHP は Zend PHP エンジンや Facebook HHVM に代わるものではありません。 Zend ランタイム ライブラリ (Curl、PRCE など) を実装する必要はありません。この商品の対象:

  1. PHP で便利な Java オブジェクトを使用する機能
  2. JIT と JVM によるパフォーマンスの向上
  3. Zend PHP の醜いランタイム ライブラリの代わりに、より優れたランタイム ライブラリを利用します
  4. PHP を Web アプリケーションの開発だけに使用しないようにしましょう
  5. また: 文字列とスレッドの Unicode

特徴

  • JIT (2 倍から 10 倍高速な PHP 5.4)
  • オプティマイザー (定数式、インライン関数など)
  • PHP コードでの Java ライブラリとクラスの使用
  • 文字列の Unicode (Java のような UTF-16)
  • ねじ切り、ソケット
  • 環境アーキテクチャ (runkit zend 拡張機能のサンドボックス オブジェクトなど)。
  • GUI (Swing に基づいて改良、より柔軟なレイアウト)
  • クラスと関数用の埋め込みキャッシュ システム
  • クラスと関数のオプションのホットリロード

言語サポート機能

(zend ランタイム ライブラリなし)

  • PHP 5.2+ 完全サポート (OOP 付き)
  • クロージャー (PHP 5.3)、クロージャー内の自動バインディング $this (PHP 5.4)
  • 名前空間を完全にサポート (PHP 5.3)
  • クラスの Spl オートロード (PHP 5.3)
  • イテレーター、ArrayAccess、シリアル化可能
  • クラス、配列、呼び出し可能なタイプのヒント (PHP 5.4)
  • 配列の短い構文 (PHP 5.4)
  • 三項ショートカット "?:"、NOWDOC、__callStatic, __invoke (PHP 5.3)
  • 最新の静的バインディング (PHP 5.3)
  • 循環参照の GC (PHP 5.3)
  • Class::{expr}(), (new Foo)->bar() (PHP 5.4)
  • 最後に試してみる(PHP 5.5)
  • 配列および文字列リテラルの逆参照 (PHP 5.5)
  • __debugInfo var_dump (PHP 5.6) 用
  • 関数配列の逆参照が追加されました。例: foo()[0] (PHP 5.4)
  • 定数は const キーワードを使用してクラスの外で宣言できます (PHP 5.3)
  • 静的メソッドへの動的アクセス (PHP 5.3)
  • 例外はネスト可能 (PHP 5.3)
  • ::classシステム定数 (php 5.5)

まだサポートされていないものは何ですか?

  • 特性 (php 5.4)
  • ジェネレーター (php 5.5)
  • Goto (php 5.3)
  • foreach の list() (php 5.5)
  • 2進数形式、例: 0b001001101 (php 5.4)

プロジェクトのホームページ: http://www.open-open.com/lib/view/home/1395628572618



    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。