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