<?php
$system = new Java("java.lang.System");
print "Java version=" . $system->getProperty("java.version") . " <br>\n";
?>
new Java() 即可像操作 PHP 物件一樣呼叫 Java 方法。結論:因上述原因,PHP Java 擴展從未適合生產環境。
<?php
$conn = minij2ee_fetch_connection();
// 靜態方法調用
print "Java version=" . minij2ee_callstatic_javaobj($conn, "java.lang.System", "getProperty", "java.lang.String", "java.version") . " <br>\n";
// EJB 組件調用(經編譯器生成 Cart.php)
require("Cart.php");
$home = new CartHome();
$objref = $home->create($cart_name);
$cart = new Cart($objref);
$cart->add("some goods");
?>
| 維度 | PHP Java 擴展 | MiniJ2EE + SJOP |
|---|---|---|
| 架構 | 進程內 JVM | 跨進程 ORB,PHP 與 JVM 解耦 |
| 效能 | 極差,拖垮 Web Server | 優,連接池複用,支援叢集 |
| 重載方法 | 不支援 | 支援(協議層解析簽名) |
| 企業級特性 | 無 | EJB、事務、安全、資源池 |
| 穩定性 | 已知凍結 Bug | 成熟應用伺服器架構 |
| 適用場景 | 僅限原型驗證 | 生產級 PHP-J2EE 混合系統 |
libjvm.so 但調試極難,不推薦生產使用。