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:
-->