Utilisation simple

Exemple #1 Exemple avec Java

<?php
// Créer une instance de la classe Java java.lang.System dans PHP
$system = new Java('java.lang.System');

// Accéder aux propriétés
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
			 $system->getProperty('os.version') . ' on ' .
			 $system->getProperty('os.arch') . ' <br />';

// Exemple avec java.util.Date
$formatter = new Java('java.text.SimpleDateFormat',
					  "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>

Exemple #2 Exemple avec AWT

<?php
// Cet exemple ne fonctionne qu'en mode CLI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes :
  • new Java() crée une nouvelle instance d'une classe, si un constructeur valable est disponible. Si aucun paramètre n'est passé, et le constructeur par défaut est utile pour accéder à ces classes telles que "java.lang.System", qui fournissent leur fonctionnalités via des méthodes statiques.
  • Lors de l'accès aux membres d'une instance, PHP commencera par rechercher les membres Bean, puis les champs publics. En d'autres termes, "print $date.time" sera d'abord résolu par "$date.getTime()", puis par "$date.time";
  • Les membres statiques et d'instance sont accessibles avec la même syntaxe. De plus, si un objet est de type "java.lang.Class", les membres statiques de la classe (champs et méthodes) sont accessibles.
  • Les exceptions sont transformées en alertes PHP, et résultat NULL. Les alertes peuvent être supprimées en préfixant l'appel par l'opérateur >. Les fonctions suivantes peuvent être utilisées pour lire et effacer la dernière erreur remontée :

  • Les surcharges de fonctions sont des problèmes épineux, étant données les différences de type de valeurs entre les deux /bin/bash: q: command not found mais efficace pour déterminer la meilleur fonction à utiliser. De plus, les noms de méthodes ne sont pas sensibles à la casse en PHP, ce qui augmente le nombre de conflits potentiels. Une fois qu'une méthode est sélectionnée, les paramètres sont transtypés, avec une perte d'information potentielle non négligeable (par exemple, les nombres à virgules flottante en double précisions seront convertis en booléen).
  • Traditionnellement en PHP, les tableaux et les tables de hashage peuvent être interchangées, et fonctionnent de la même façon. Notez que les tables de hashage de PHP ne peuvent être indexées qu'avec des entiers ou des chaînes, et que le type primitif de tableau de Java ne peut comporter de trous dans les index. Notez aussi que les valeurs sont passées par valeur, ce qui peut être coûteux en mémoire et en temps.

LoadingChargement en cours