Java 言語は強力なので、php で Java 関数を呼び出すと多くの場合に非常に役立ちます。 php で Java 言語を呼び出すには 2 つの方法があります。1 つは php で Java 拡張モジュールを使用する方法、もう 1 つは minij2ee アプリケーション サーバーによって提供される SJOP プロトコル実装を使用する方法です。以下に 2 つの方法の特徴を比較してみましょう。
1.php Java モジュール
PHP リリース バージョンには、Java オブジェクトの呼び出しに使用できる Java 拡張モジュールが含まれています。例:
$system=new Java("java.lang.System");
print "Java version= " .$system->getProperty("java.version")."
";
?>
このメソッドを使用する利点は、より便利であることです。 new Java() を使用してJava オブジェクト、php で使用できます Java オブジェクトはクラスと同様に呼び出されます。ただし、この方法には次の明らかな欠点もあります:
1. php の Java モジュールは php のデータ型に応じて最適な Java メソッドを選択するため、Java のオーバーロードされた関数を呼び出すことができません。
2.php の Java モジュールは、現在の Web サーバー プロセスに JVM (Java 仮想マシン) をロードするため、システムのオーバーヘッドが大きく、Web サーバー プロセスの実行効率に影響を与えます。
3. 一部のオペレーティング システムおよび Web サーバー環境では、php の Java モジュールが Web サーバー プロセスをフリーズします。 http://www.php.net/bugs.php?id=6122 を参照してください。
これらの理由により、PHP の Java モジュールは実際のソフトウェア システムに適用できませんでした。
2. Minij2ee アプリケーション サーバーの SJOP プロトコルの実装
minij2ee アプリケーション サーバーの SJOP プロトコルの実装を紹介する前に、minij2ee アプリケーション サーバーについて簡単に紹介します。 minij2ee アプリケーション サーバーは、PHP をサポートする最初の J2EE アプリケーション サーバー製品であり、エンタープライズ レベルのアプリケーション システムの開発に PHP を使用できるようになります。 SJOP の正式名は、Sample Java ORB Protocol (Simple Java Object Request Proxy Protocol) で、シンプルで効率的なオブジェクト要求プロキシ プロトコルです。例:
$conn=minij2ee_fetch_connection();
print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java) .version")."
";
?>
minij2ee アプリケーション サーバーが SJOP プロトコルを実装する主な目的は、PHP が EJB エンタープライズ レベルのコンポーネントにアクセスできるようにすることです。そのため、minij2ee は、次のような EJB-PHP コンパイラーを提供します。 EJB コンポーネントを PHP クラスにコンパイルすると、PHP プログラムで EJB コンポーネントを簡単に呼び出すことができます。例:
require("Cart.php"); file://Cart.php は、Cart EJB のコンパイル後に生成される Cart EJB の PHP クラス定義です。 。
$home=new CartHome(); file://EJB のホーム インターフェイスを作成します。
$objref=$home->create($cart_name); file://カート EJB を作成します。
$cart=new Cart($objref);
$cart->add("some Goods"); file://ショッピングカートに商品を追加します。
?>
minij2ee アプリケーション サーバーの PHP サポートを使用すると、PHP および J2EE テクノロジに基づいたオブジェクト指向の安定した効率的なエンタープライズ レベルのアプリケーション システムを開発できます。