dams            Thu Jul 12 08:19:58 2001 EDT

  Added files:                 
    /phpdoc/fr/functions        java.xml 
  Log:
  Initial translation
  

Index: phpdoc/fr/functions/java.xml
+++ phpdoc/fr/functions/java.xml
 <reference id="ref.java">
  <title>Java</title>
  <titleabbrev>Int&eacute;gration de Java</titleabbrev>
  <partintro>
   <para>
    Il y a deux moyens de connecter PHP et Java : soit en int&eacute;grant
    Java directement dans PHP, ce qui est la solution la plus stable et
    la plus efficace, ou en int&eacute;grant PHP dans un environnement de
    Servlet Java. La premi&egrave;re solution est fournie par cette extension
    Java, et la derni&egrave;re par le module SAPI qui s'interface avec
    un serveur de Servlet.
   </para>
   <para>
    PHP 4 ext/java fournit un moyen simple mais efficace pour invoquer et
    cr&eacute;er des objets Java, depuis PHP. Une machine virtuelle est 
cr&eacute;&eacute;e via JNI,
    et le tout fonctionne avec des processus fils. Les instructions d'installation
    pour cette extension sont sont disponibles dans le fichier :
    <filename>php4/ext/java/README</filename>.
    <example>
     <title>Exemple avec Java</title>
     <programlisting role="php">
&lt;?php
  // cr&eacute;e une instance de Java class java.lang.System en PHP
  $system = new Java("java.lang.System");
  // acc&egrave;de aux propri&eacute;t&eacute;s
  print "Java version=".$system-&gt;getProperty("java.version")." &lt;br&gt;";
  print "Java vendor=" .$system-&gt;getProperty("java.vendor")."  &lt;br&gt;";
  print "OS=".$system-&gt;getProperty("os.name")." ".
              $system-&gt;getProperty("os.version")." on ".
              $system-&gt;getProperty("os.arch")." &lt;br&gt;";
  // Exemple avec java.util.Date
  $formatter = new Java("java.text.SimpleDateFormat",
                        "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
  print $formatter-&gt;format(new Java("java.util.Date"));
?&gt;
     </programlisting>
    </example>
    <example>
     <title>Exemple AWT</title>
     <programlisting role="php">
&lt;?php
  // Cet exemple ne fonctionne qu'en mode CGI.
  $frame  = new Java("java.awt.Frame", "Zend");
  $button = new Java("java.awt.Button", "Bonjour au monde Java!");
  $frame-&gt;add("Nord", $button);
  $frame-&gt;validate();
  $frame-&gt;pack();
  $frame-&gt;visible = True;
  $thread = new Java("java.lang.Thread");
  $thread-&gt;sleep(10000);
  $frame-&gt;dispose();
?&gt;
     </programlisting>
    </example>
    Notes:
    <itemizedlist>
     <listitem>
      <simpara>
       <literal>new Java()</literal> cr&eacute;e une nouvelle instance d'une classe,
       si un constructeur valable est disponible. Si aucun param&egrave;tre n'est 
pass&eacute;,
       et le constructeur par d&eacute;faut est utile pour acc&eacute;der &agrave; ces 
classes
       telles que "java.lang.System", qui fournissent leur fonctionnalit&eacute;s via
       des m&eacute;thodes statiques.
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Lors de l'acc&egrave;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&eacute;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&ecirc;me
       syntaxe. De plus, si un objet est de type "<literal>java.lang.Class</literal>",
       les membres statiques de la classe (champs et m&eacute;thodes) sont accessibles.
      </simpara>
     </listitem>
     <listitem>
      <para>
       Les exceptions sont transform&eacute;es en alertes PHP, et r&eacute;sultat NULL.
       Les alertes peuvent &ecirc;tre supprim&eacute;es en pr&eacute;fixant l'appel 
par l'op&eacute;rateur
       "<literal>&#62;</literal>". Les fonctions suivantes peuvent &ecirc;tre 
utilis&eacute;es pour
       lire et effacer la derni&egrave;re erreur remont&eacute;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 surchargements de fonctions sont des probl&egrave;mes &eacute;pineux,
       &eacute;tant donn&eacute; les diff&eacute;rences de type de valeurs entre les 
deux
       langages. L'extension Java de PHP utilise une m&eacute;trique simple
       mais efficace pour d&eacute;terminer la meilleur fonction &agrave; utiliser.
      </simpara>
      <simpara>
       De plus, les noms de m&eacute;thodes ne sont pas sensibles &agrave; la casse en
       PHP, ce qui augmente le nombre de conflits potentiels.
      </simpara>
      <simpara>
       Une fois qu'une m&eacute;thode est s&eacute;lectionn&eacute;e, les 
param&egrave;tres sont
       transtyp&eacute;s, avec une perte d'information potentielle non 
n&eacute;gligeable
       (par exemple, les nombres &agrave; virgules flottante en double 
pr&eacute;cisions
       seront convertis en bool&eacute;en).
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Traditionnellement en PHP, les tableaux et les tables de hashage peuvent
       &ecirc;tre interchang&eacute;es, et fonctionnent de la m&ecirc;me fa&ccedil;on. 
Notez que les tables
       de hashage de PHP ne peuvent &ecirc;tre index&eacute;es qu'avec des entiers ou 
des
       cha&icirc;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&eacute;es par
       valeur, ce qui peut &ecirc;tre co&ucirc;teux en m&eacute;moire et en temps.
      </simpara>
     </listitem>
    </itemizedlist>
   </para>
   <para>
    L'interface PHP4 sapi/servlet est construite sur un m&eacute;canisme d&eacute;fini 
par
    l'extension Java, qui permet &agrave; PHP d'&ecirc;tre ex&eacute;cut&eacute; comme 
une servlet. L'avantage
    imm&eacute;diat d'un point de vue PHP est que les serveurs web qui supportent les
    servlets g&egrave;rent rigoureusement les machines virtuelles. Les instructions 
d'installation
    du module Servlet SAPI sont disponibles dans le fichier 
<filename>php4/sapi/README</filename>.
    Notes:
    <itemizedlist>
     <listitem>
      <simpara>
       Bien que ce code soit pr&eacute;vu pour fonctionner sur n'importe quel
       serveur &agrave; Servlet, il n'a &eacute;t&eacute; test&eacute; qu'avec le 
module Apache
       Jakarta/tomcat (jusqu'&agrave; aujourd'hui). Les remont&eacute;es de bugs, les
       r&eacute;ussites et les patches n&eacute;cessaires pour faire fonctionner ce 
code
       sur d'autres serveurs sont fortement encourag&eacute;s!
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       PHP a l'habitude de changer le dossier de travail. Le serveur SAPI/Servlet
       le changera &agrave; nouveau, mais tant que PHP fonctionnera, le moteur de 
servlet
       ne pourra pas charger de classes dans le CLASSPATH, si le dossier est
       sp&eacute;cifi&eacute; avec un chemin relatif, ou ne pourra pas trouver le 
dossier
       d'administration et de compilation des t&acirc;ches JSP.
      </simpara>
     </listitem>
    </itemizedlist>
   </para>
  </partintro>
  <refentry id="function.java-last-exception-clear">
   <refnamediv>
    <refname>java_last_exception_clear</refname>
    <refpurpose>Efface la derni&egrave;re exception Java</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>void <function>java_last_exception_clear</function></funcdef>
      <void/>
     </funcprototype>
    </funcsynopsis>
   </refsect1>
  </refentry>
  <refentry id="function.java-last-exception-get">
   <refnamediv>
    <refname>java_last_exception_get</refname>
    <refpurpose>Lit la derni&egrave;re exception Java</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>exception <function>java_last_exception_get</function></funcdef>
      <void/>
     </funcprototype>
    </funcsynopsis>
    <para>
     L'exemple ci-dessous montre l'utilisation du gestionnaire d'exceptions
     java :
     <example>
      <title>Gestionnaire d'exception Java</title>
      <programlisting role="php">
&lt;?php
  $stack = new Java("java.util.Stack");
  $stack-&gt;push(1);
  // Cela doit marcher
  $result = $stack-&gt;pop();
  $ex = java_last_exception_get();
  if (!$ex) print "$result\n";
  // Cela doit &eacute;chouer (le rapport d'erreurs est supprim&eacute; par &#62;)
  $result = @$stack-&gt;pop();
  $ex = java_last_exception_get();
  if ($ex) print $ex-&gt;toString();
  // Efface la derni&egrave;re exception
  java_last_exception_clear();
?&gt;
      </programlisting>
     </example>
    </para>
   </refsect1>
  </refentry>
 </reference>
<!-- 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
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to