Files
doc-fr/reference/java/examples.xml
Yannick Torres 828895c4ed Convert to UTF-8
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@297483 c90b9560-bf6c-de11-be94-00142212c4b1
2010-04-04 23:45:40 +00:00

149 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<chapter xml:id="java.examples" xmlns="http://docbook.org/ns/docbook">
&reftitle.examples;
<section xml:id="java.examples-basic">
<para>
<example>
<title>Exemple avec Java</title>
<programlisting role="php">
<![CDATA[
<?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'));
?>
]]>
</programlisting>
</example>
<example>
<title>Exemple avec AWT</title>
<programlisting role="php">
<![CDATA[
<?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();
?>
]]>
</programlisting>
</example>
Notes :
<itemizedlist>
<listitem>
<simpara>
<literal>new Java()</literal> 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.
</simpara>
</listitem>
<listitem>
<simpara>
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,
"<literal>print $date.time</literal>" sera d'abord résolu par
"<literal>$date.getTime()</literal>", puis par "<literal>$date.time</literal>";
</simpara>
</listitem>
<listitem>
<simpara>
Les membres statiques et d'instance sont accessibles avec la même
syntaxe. De plus, si un objet est de type "<literal>java.lang.Class</literal>",
les membres statiques de la classe (champs et méthodes) sont accessibles.
</simpara>
</listitem>
<listitem>
<para>
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 <literal>&#62;</literal>. Les fonctions suivantes
peuvent être utilisées pour lire et effacer la dernière
erreur remontée :
<itemizedlist>
<listitem><simpara><function>java_last_exception_get</function></simpara></listitem>
<listitem><simpara><function>java_last_exception_clear</function></simpara></listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<simpara>
Les surcharges de fonctions sont des problèmes épineux,
étant données les différences de type de valeurs entre les deux
<literal>/bin/bash: q: command not found</literal>
mais efficace pour déterminer la meilleur fonction à utiliser.
</simpara>
<simpara>
De plus, les noms de méthodes ne sont pas sensibles à la casse en
PHP, ce qui augmente le nombre de conflits potentiels.
</simpara>
<simpara>
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).
</simpara>
</listitem>
<listitem>
<simpara>
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.
</simpara>
</listitem>
</itemizedlist>
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->