Die Java-Sprache ist leistungsstark, daher ist der Aufruf von Java-Funktionen in PHP in vielen Fällen sehr nützlich. Es gibt zwei Möglichkeiten, die Java-Sprache in PHP aufzurufen: Eine besteht darin, das Java-Erweiterungsmodul in PHP zu verwenden, und die andere darin, die vom minij2ee-Anwendungsserver bereitgestellte SJOP-Protokollimplementierung zu verwenden. Vergleichen wir unten die Eigenschaften dieser beiden Methoden.
Java-Modul von 1.php
Die PHP-Release-Version enthält ein Java-Erweiterungsmodul, mit dem Java-Objekte aufgerufen werden können, zum Beispiel:
$system=new Java("java.lang.System") ;
print "Java version=".$system->getProperty("java.version")."
";
?>
Der Vorteil dieser Methode besteht darin, dass sie es ist Bequemer: Verwenden Sie einfach new Java(), um ein Java-Objekt zu erstellen. Sie können das Java-Objekt genau wie die PHP-Klasse aufrufen. Diese Methode weist jedoch auch die folgenden offensichtlichen Mängel auf:
1. Da das Java-Modul von PHP die am besten geeignete Java-Methode entsprechend dem Datentyp von PHP auswählt, kann es keine überladenen Java-Funktionen aufrufen.
Das Java-Modul von 2.php lädt die JVM (Java Virtual Machine) im aktuellen Webserver-Prozess, sodass der Systemaufwand enorm ist und die Ausführungseffizienz des Webserver-Prozesses beeinträchtigt.
3. In einigen Betriebssystemen und Webserverumgebungen friert das Java-Modul von PHP den Webserverprozess ein. Siehe http://www.php.net/bugs.php?id=6122.
Aus diesen Gründen konnte das Java-Modul von PHP nie auf tatsächliche Softwaresysteme angewendet werden.
2. Implementierung des SJOP-Protokolls des Minij2ee-Anwendungsservers
Bevor wir die SJOP-Protokollimplementierung des Minij2ee-Anwendungsservers vorstellen, stellen wir kurz den Minij2ee-Anwendungsserver vor. Der minij2ee-Anwendungsserver ist das erste J2EE-Anwendungsserverprodukt, das PHP unterstützt, sodass PHP zur Entwicklung von Anwendungssystemen auf Unternehmensebene verwendet werden kann. Der vollständige Name von SJOP lautet Sample Java ORB Protocol (Simple Java Object Request Proxy Protocol), ein einfaches und effizientes Objektanforderungs-Proxy-Protokoll. Zum Beispiel:
$conn=minij2ee_fetch_connection();
print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty " ,"java.lang.String","java.version")."
";
?>
Der Hauptzweck des minij2ee-Anwendungsservers zur Implementierung des SJOP-Protokolls besteht darin, den Zugriff auf zu ermöglichen EJB-Komponenten auf Unternehmensebene in PHP, daher stellt minij2ee einen EJB-PHP-Compiler bereit, der EJB-Komponenten in PHP-Klassen kompilieren kann, sodass EJB-Komponenten bequem in PHP-Programmen aufgerufen werden können, zum Beispiel:
require("Cart.php "); file:/ /Cart.php ist die PHP-Klassendefinition von Cart EJB, die nach dem Kompilieren von Cart EJB generiert wird.
$home=new CartHome(); file://Erstellt die Home-Schnittstelle von EJB.
$objref=$home->create($cart_name); file://Create Cart EJB.
$cart=new Cart($objref);
$cart->add("somegoods");
?>
Mit der PHP-Unterstützung des minij2ee-Anwendungsservers können Sie ein objektorientiertes, stabiles und effizientes Anwendungssystem auf Unternehmensebene entwickeln, das auf PHP- und J2EE-Technologie basiert.