ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで Java クラスを呼び出す 2 つの方法
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")."
";
?>
このメソッドを使用する利点は、新しい Java を使用するだけでより便利であることです。 () を作成する Java オブジェクトは、PHP クラスのように呼び出すことができます。ただし、この方法には次の明らかな欠点もあります:
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- EJB コンポーネントを PHP クラスにコンパイルできる PHP コンパイラー。これにより、EJB コンポーネントを 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 テクノロジに基づいたオブジェクト指向の安定した効率的なエンタープライズ レベルのアプリケーション システムを開発できます。 PHP-J2EE テクノロジの詳細については、http://www.minij2ee.com/document/document_index_6_0.html を参照してください。
http://www.bkjia.com/PHPjc/445176.html