cvs: phpdoc /fr/functions java.xml

From: Date: Thu, 12 Jul 2001 12:19:58 +0000
Subject: cvs: phpdoc /fr/functions java.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969336207@lists.php.net to get a copy of this message
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: -->
« previous php.doc (#969336207) next »