Die im Folgenden vorgestellten Integrationsbemühungen gehen tiefer. Der JSR 223 bringt zwar dem Java-Entwickler PHP näher, seine PHP-Kollegen bleiben aber ohne nennenswerte Unterstützung. Dieses Manko wollen verschiedene Brücken beheben. Zur erwähnten PHP/Java Bridge existiert eine kommerzielle Alternative von Zend, der "PHP Company". Beide Produkte sind in der Lage, von PHP aus auf Plain Old Java Objects (POJOs) sowie andere Java- und Java-EE-Komponenten (EJBs, Connections, JMS et cetera) zuzugreifen. Die PHP/Java Bridge bietet zwei Zugriffsoptionen: Eine native, in PHP geschriebene Java-Brücke und ein in C umgesetztes PHP-Erweiterungsmodul. Der erste Weg lässt sich einfach beschreiten, man muss nur die relevanten PHP-Klassen auf den Webserver kopieren. Folgender Code-Schnipsel eröffnet den Zugriff auf Java-Klassen:
?php require_once("java/Java.php");
$string = new Java("java.lang.String", "HelloWorld");
echo $string;
?>;
Zum Ausführen benötigt diese Variante keinen nativen Code (.so oder .dll). Großes Manko: Im Gegensatz zum in C verfassten Modul läuft sie rund zehnmal langsamer. Dafür ist die Konfiguration des C-Moduls schwierig. Außer der JavaBridge.jar muss der Entwickler eine spezielle php_java.dll in den PHP-Erweiterungsordner (<drive>;/php/ext) kopieren und in (php.ini) registrieren. Unter Linux funktioniert das alles ohne installiertes Java; Windows verlangt hingegen ein Java Development Kit (JDK). Das einsatzbereite Modul kann beispielsweise folgenden Code ausführen:
<?php
$system = new Java('java.lang.System');
echo 'Java version=' . $system-> getProperty('java.version');
?>
Interessant ist die Tatsache, dass die PHP/Java Bridge ohne JNI auskommt. Neben den zwei beschriebenen Modulen und der Scripting Engine gibt es noch eine Mono-.Net-Brücke. Detaillierte Informationen dazu stehen auf der Projektwebseite.
Zend bietet im Rahmen seiner PHP-Plattform die Java Integration Bridge an. Leider gibt die Firmenwebsite dazu nicht allzu viel Wissenswertes preis. Erst der User Guide erschließt die Architektur des Produkts. Das Java Middleware Module folgt dem PHP-Standard. Der Zugriff sieht genauso aus wie bei der PHP/Java Bridge. Allerdings helfen hier einige Zusatzprogramme. Sowohl auf PHP- als auch auf Java-Seite wird eine Komponente installiert, die das Ein- und Auspacken der übertragenen Objekte besorgen.
Auf der nächsten Seite: Gebremste Lösung
Themenforum: Java