dams Fri Mar 30 00:51:49 2001 EDT Added files: /phpdoc/fr/pear pear.xml Log: Added PEAR and translated.
Index: phpdoc/fr/pear/pear.xml +++ phpdoc/fr/pear/pear.xml <reference id="ref.pear"> <title>Manuel de référence PEAR</title> <titleabbrev>PEAR</titleabbrev> <partintro> <simpara> Ce chapitre contient la documentation de référence des composants PEAR, qui sont distribué avec PHP. Une bonne connaissances des mécanismes <link linkend="language.oop">objets</link> est nécessaire. </simpara> </partintro> <refentry id="class.pear"> <refnamediv> <refname>PEAR</refname> <refpurpose>Classe de base PEAR</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>require_once "PEAR.php";</synopsis> <synopsis>class <replaceable>classname</replaceable> extends <classname>PEAR</classname> { ... }</synopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <simpara> La classe de base PEAR fournit les fonctionnalités qui sont utilisées par la plus part des classes PEAR. Normalement, vous n'avez pas à utiliser cette classe directement : il vous suffit d'en hériter. </simpara> <para> Les fonctionnalités marquantes sont : <itemizedlist> <listitem> <simpara>Fonction de fin de requête</simpara> </listitem> <listitem> <simpara>Gestion des erreurs</simpara> </listitem> </itemizedlist> </para> <refsect2> <title>Fonction de fin de requête</title> <simpara> Si vous faîtes hériter de la classe <classname>PEAR</classname>, une classe appelée <replaceable>NomClasse</replaceable>, vous pouvez définir une méthode appelée <literal>_<replaceable>ClassName</replaceable></literal> (le nom de la classe précédé d'un souligné), qui sera appelée lorsque le script prend fin. Ce n'est pas un destructeur, car vous pouvez détruire un objet avec cette méthode, mais le destructeur sera quand même appelé. C'est une fonction de callback, qui intervient lorsque le script prend fin. Voyez <link linkend="example.pear.destructors">l'exemple</link>. </simpara> </refsect2> <refsect2> <title>Gestion des erreurs</title> <simpara> La classe de base PEAR fournit aussi un moyen de manipuler des erreurs plus complexes qu'un simple booléen ou entier. Une erreur PEAR est un objet qui est une instance de la classe <classname>PEAR_Error</classname>, ou d'une de ses sous-classes. </simpara> <simpara> Une des éxigences de conception des erreurs PEAR est qu'il ne faut pas forcer l'affichage d'erreurs, mais plutôt de fournir les outils pour les afficher, tout en laissant à l'utilisateur le choix de les utiliser. Cela permet de traiter correctement les erreurs, notamment si le format de sortie n'est pas HTML (par exemple WML ou XML). </simpara> <simpara> L'objet d'erreur peut être configuré de nombreuses façons dès sa création : affichage d'erreur, affichage d'erreur suivi de la fin du script, envoie d'une erreur PHP avec <function>trigger_error</function>, appeler une fonction de traitement, ou rien du tout. Vous pouvez typiquement spécifier ces parmètres dès le constructeur de <classname>PEAR_Error</classname> : tous ces paramètres sont optionnel, et <classname>PEAR</classname> fournit un moyen de gérer des valeurs par défaut. Voyez les <link linkend="example.pear.error1">exemples d'erreurs PEAR</link>, pour avoir une illustration, et la documentation de <classname>PEAR_Error</classname> pour plus de détails. </simpara> </refsect2> </refsect1> <refsect1 id="example.pear.destructors"> <title>Exemples</title> <para> Les exemples ci-dessus montre comment utiliser les simili destructeurs, pour implémenter une classe qui gère le contenu d'un fichier, ajoute des données, et sauve le tout à la fin du script. <example> <title>Les simili destructeurs de PEAR</title> <programlisting role="php"> <?php require_once "PEAR.php"; class FileContainer extends PEAR { var $file = ''; var $contents = ''; var $modified = 0; function FileContainer($file) { $this->PEAR(); // cette ligne appelle le constructeur père $fp = fopen($file, "r"); if (!is_resource($fp)) { return; } while (!empty($data = fread($fp, 2048))) { $this->contents .= $data; } fclose($fp); } function append($str) { $this->contents .= $str; $this->modified++; } // le simili-destructeur est nommé d'après le nom de la classe // mais avec un souligné devant. function _FileContainer() { if ($this->modified) { $fp = fopen($this->file, "w"); if (!is_resource($fp)) { return; } fwrite($fp, $this->contents); fclose($fp); } } } $fileobj = new FileContainer("testfile"); $fileobj->append("Ceci se termine à la fin du fichier\n"); // Lorsque le script est terminé et que PHP s'arrête, // le simili destructeur de $fileobj est appelé, et // met à jour les informations sur le disque ?> </programlisting> </example> <note> <simpara> Les simili destructeurs de PEAR utilisent les fonctions de fin de script de PHP (<function>register_shutdown_function</function>), et vous ne pourrez rien afficher dans ces fonctions, si vous utilisez un serveur web. En ligne de commande, toutefois, l'affichage se fera. C'est comme ca. </simpara> </note> </para> <simpara> L'exemple suivant montre différentes façons d'utiliser le mécanisme d'erreur de PHP. </simpara> <para> <example id="example.pear.error1"> <title>Exemple d'erreurs PEAR(1)</title> <programlisting role="php"> <?php function mysockopen($host = "localhost", $port = 8090) { $fp = fsockopen($host, $port, $errno, $errstr); if (!is_resource($fp)) { return new PEAR_Error($errstr, $errno); } return $fp; } $sock = mysockopen(); if (PEAR::isError($sock)) { print "mysockopen error: ".$sock->getMessage()."<BR>\n" } ?> </programlisting> </example> </para> <simpara> Cet exemple illustre une fonction de <function>fsockopen</function> qui retourne le code d'erreur et, au cas échéant, le message retourné par le serveur. Notez que <function>pear->iserror</function> sert à savoir si une valeur est une erreur PEAR. </simpara> <simpara> Le mode opératoire de PEAR_Error dans cet exemple est de simplement retourner l'objet d'erreur, et laisser le reste au développeur. C'est le mode par défaut. </simpara> <simpara> Dans le prochain exemple, on utilise d'autres modes : </simpara> <para> <example id="example.pear.error2"> <title>PEAR error example (2)</title> <programlisting role="php"> <?php class TCP_Socket extends PEAR { var $sock; function TCP_Socket() { $this->PEAR(); } function connect($host, $port) { $sock = fsockopen($host, $port, $errno, $errstr); if (!is_resource($sock)) { return $this->raiseError($errstr, $errno); } } } $sock = new TCP_Socket; $sock->setErrorHandling(PEAR_ERROR_DIE); $sock->connect("localhost", 8090); print "Toujours connecté<BR>\n"; ?> </programlisting> </example> </para> <simpara> Ici, le mode par défaut est <constant>PEAR_ERROR_DIE</constant>, et comme on ne spécifie aucun mode d'erreur dans l'appel à (ce devrait être le troisième argument), raiseError utilise le mode par défaut, et termine le script si <function>fsockopen</function> échoue. </simpara> </refsect1> </refentry> <refentry id="class.pear-error"> <refnamediv> <refname>PEAR_Error</refname> <refpurpose>Méchanisme de base des erreurs PEAR</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>$err = new <classname>PEAR_Error</classname>($msg);</synopsis> </refsynopsisdiv> <refsect1> <title>Modes d'erreurs</title> <para> Un objet d'erreur a un mode d'opération, qui peut être l'une des constantes suivantes : <variablelist id="pear.error-modes"> <varlistentry id="constant.pear-error-return"> <term>PEAR_ERROR_RETURN</term> <listitem> <simpara> Retourne simplement l'objet, et ne fait rien de spécial dans le constructeur de PEAR_Error. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-print"> <term>PEAR_ERROR_PRINT</term> <listitem> <simpara> Affiche le message d'erreur dans le constructeur. L'exécution n'est pas interrompue. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-trigger"> <term>PEAR_ERROR_TRIGGER</term> <listitem> <simpara> Utilise la fonction <function>trigger_error</function> pour envoyer une erreur interne à PHP. L'exécution est interrompue si vous avez définit vos propres gestionnaires d'erreurs, ou si vous avez utilisez le niveau d'erreur E_USER_ERROR. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-die"> <term>PEAR_ERROR_DIE</term> <listitem> <simpara> Affiche le message d'erreur et termine le script. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-callback"> <term>PEAR_ERROR_CALLBACK</term> <listitem> <simpara> Utilise une fonction utilisateur pour gérer les erreurs. L'exécution s'arrête. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1> <title>Propriétés</title> <simpara></simpara> </refsect1> <refsect1> <title>Méthodes</title> <funcsynopsis> <funcprototype> <funcdef><function>pear_error::pear_error</function></funcdef> <paramdef> <parameter><optional>message</optional></parameter> <parameter><optional>code</optional></parameter> <parameter><optional>mode</optional></parameter> <parameter><optional>options</optional></parameter> <parameter><optional>userinfo</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <refsect2> <title>Description</title> <para> Constructeur PEAR_Error. Paramétres : <variablelist> <varlistentry> <term>message</term> <listitem> <simpara> message d'erreur. Par défaut, <literal>"unknown error"</literal> ("erreur inconnue"). </simpara> </listitem> </varlistentry> <varlistentry> <term>code</term> <listitem> <simpara> code d'erreur (optionnel) </simpara> </listitem> </varlistentry> <varlistentry> <term>mode</term> <listitem> <simpara> Mode d'opération. Voir les <link linkend="pear.error-modes">modes d'erreur</link>, pour plus de détails. </simpara> </listitem> </varlistentry> <varlistentry> <term>options</term> <listitem> <simpara> Si le mode peut avoir des options, utilisez ce paramètre. Actuellement, seules les valeurs de "trigger" et "callback" utilisent ce paramètre. Pour le mode trigger, ce paramètre peut valoir <constant>E_USER_NOTICE</constant>, <constant>E_USER_WARNING</constant> ou <constant>E_USER_ERROR</constant>. Pour le mode callback, ce paramètre doit contenir soit le nom de la fonction de callback (chaîne), soit un tableau à deux éléments (objet, chaîne) représentant un objet et une méthode à appeler. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect2> </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: -->