[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pear-doc
Subject:    [PEAR-DOC] cvs: peardoc /fr/package/database/db-dataobject intro-casting.xml intro-configuration.xml
From:       "Yannick TORRES" <yannick () php ! net>
Date:       2004-06-29 10:15:19
Message-ID: cvsyannick1088504119 () cvsserver
[Download RAW message or body]

yannick		Tue Jun 29 06:15:19 2004 EDT

  Added files:                 
    /peardoc/fr/package/database/db-dataobject	intro-casting.xml 
                                              	intro-configuration.xml 
  Log:
  initial translation
  
["yannick-20040629061519.txt" (text/plain)]

http://cvs.php.net/co.php/peardoc/fr/package/database/db-dataobject/intro-casting.xml?r=1.1&p=1
                
Index: peardoc/fr/package/database/db-dataobject/intro-casting.xml
+++ peardoc/fr/package/database/db-dataobject/intro-casting.xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.1 Maintainer: yannick Status: ready -->
  <refentry  id="package.database.db-dataobject.intro-casting">
    <refnamediv>
      <refname>Transtypage - Dates, Blobs et Null</refname>
      <refpurpose>
       DB_DataObject_Cast   ::date(), ::blob(), ::sql()
      </refpurpose>
    </refnamediv>



    <refsect1>
      <title>Travailler avec le transtypage (tout type except&eacute; les \
cha&icirc;nes de caract&egrave;res et le   nombres)</title>
      
      <warning>
       <para>
        Ceci est exp&eacute;rimental ! Bien que ce soit document&eacute;, c'est \
                actuellement support&eacute; uniquement
        sur une liste limit&eacute;e de base de donn&eacute;es (envoyez-moi des \
                patchs si vous voulez que cel&agrave; 
        supporte votre base de donn&eacute;es favorites) et l'API interne devrait \
changer dans le futur...  </para>
      </warning>
      
      <para>
       DataObjects est une fa&ccedil;on tr&egrave;s simple de travailler avec les \
bases de donn&eacute;es qui sont focalis&eacute;es  sur les nombres et les \
                cha&icirc;nes de caract&egrave;res.
       Vous pouvez &eacute;galement l'utiliser sur les champs date (bien que vous \
                deviez formater vos 
       cha&icirc;nes correctement) et vous pouvez l'utiliser avec d'autres types en \
                utilisant des requ&ecirc;tes SQL 
       sp&eacute;ciales, et la cha&icirc;ne de caract&egrave;res &quot;null&quot; est \
automatiquement convertie  en NULL dans la base de donn&eacute;es.
      </para>

      <para>
       Dans un but de fournir une fa&ccedil;on claire de coder les types riches de \
base de donn&eacute;es, l'objet  DB_DataObject_Cast a &eacute;t&eacute; \
                cr&eacute;&eacute;.
       Il propose de cr&eacute;er simplement un objet repr&eacute;sentant la plus \
                part des types les moins
       fr&eacute;quemment utilis&eacute;s. A suivre, un exemple d'utilisation pour \
cr&eacute;er quelques types simples.  </para>
      <para>
       L'objet de transtypage peut &ecirc;tre utilis&eacute; dans la construction de \
la requ&ecirc;te et dans l'assignement  de valeurs.
      <example>
        <title>L'objet de transtypage pour construire et assigner des valeurs</title>
        <programlisting role="php"><![CDATA[
<?php

// utiliser l'objet de transtypage pour construire une requ&ecirc;te.

$person = DB_DataObject::factory('person');


// assigner la valeur d'un anniversaire par un objet de transtypage avec une date.
$person->birthday =  DB_DataObject_Cast::date(2000,12,30);


$person->find();
while ($person->fetch()) {
    echo "{$person->name} a son anniversaire le 30 d&eacute;cembre 2002<br />";
}



// utiliser l'objet de transtypage pour assigner des valeurs.


$person = DB_DataObject::factory('person');
$person->get(12);

// d&eacute;finir l'anniversaire de la personne au 30 d&eacute;cembre 2000
$person->birthday = DB_DataObject_Cast::date(2000,12,30);

// maintenant, on met &agrave; jour la base de donn&eacute;es.
$person->update();

?>
      ]]>
        </programlisting>
       </example>
      </para>
      <para>
       Comme vous pouvez le voir, ce composant est basique, donc, si vous voulez \
                d'autres 
       fonctionnalit&eacute;s, si vous avez des id&eacute;es, n'h&eacute;sitez \
surtout pas &agrave; me contacter &agrave; l'adresse  email alan_k at php dot net.
      </para>
    </refsect1>

    <refsect1>
     <title>Les types Blob et String</title>
     <para>
      Les champs de type Blob peuvent stocker une grande quantit&eacute; de \
donn&eacute;es binaires dans une  base de donn&eacute;es.
     </para>
     <para>
      Actuellement, seuls les types Blob sont support&eacute;s dans PostGres en \
                utilisant le type de bites.
      (merci de me contacter avec un patch pour les autre bases de donn&eacute;es)
     </para>
     <para>
      <example>
       <title>Insertion d'une photo et d'un gros fichier texte</title>
       <programlisting role="php">
<![CDATA[
<?php

$person = DB_DataObject::factory('person');
$person->name = 'fred'

// utilisation d'un champs de type Blob pour des donn&eacute;es binaires.
$person->photo =  DB_DataObject_Cast::blob(file_get_contents('xxx.jpg'));

// utilisation d'une cha&icirc;ne de caract&egrave;res pour les donn&eacute;es \
textuelles dans un champs de type Blob. $person->xmldocs =  \
DB_DataObject_Cast::string(file_get_contents('xxx.xml'));

// maintenant, on insert dans la base de donn&eacute;es.
$person->insert();

?>
      ]]>
       </programlisting>
      </example>
     </para>
    </refsect1>
    
    <refsect1>
     <title>Le type Date</title>
     <para>
      La plupart des dates sont stock&eacute;es dans une base de donn&eacute;es au \
                format standard ISO, cette 
      m&eacute;thode vous permet de cr&eacute;er des types Date, depuis soit \
                l'ann&eacute;e, le mois, le jour,
      humainement lisibile (jour/mois/ann&eacute;e) ou au format ISO standard \
                ann&eacute;e-mois-jour.
      Il compl&egrave;te les valeurs restantes en se basant sur des r&egrave;gles \
simples.  </para>
     <para>
      <example>
       <title>Insertion d'une date dans divers formats</title>
       <programlisting role="php">
<![CDATA[
<?php


$person = DB_DataObject::factory('person');
$person->name = 'fred'

// utilisation d'une date humainement lisibile

// format complet
$person->birthday = new DB_DataObject_Cast::date('21/12/2003');

// utilisation seulement du mois/ann&eacute;e - actuellement d&eacute;finie au 1 \
d&eacute;cembre 2003 $person->expires =  DB_DataObject_Cast::date('12/2003');

// utilisation uniquement de l'ann&eacute;e - actuellement d&eacute;finie au 1 jan \
2003 $person->expires = DB_DataObject_Cast::date(2003);


// utilisation du format standard ISO

// format complet
$person->birthday =  DB_DataObject_Cast::date('2003-12-21');

// utilisation seulement du ann&eacute;e-mois - actuellement d&eacute;finie au 1 \
d&eacute;cembre 2003 $person->expires =  DB_DataObject_Cast::date('2003-12');




// utilisation d'une syntaxe avec tableau

// format complet
$person->birthday =  DB_DataObject_Cast::date(2003,12,21);

// utilisation seulement du ann&eacute;e-mois - actuellement d&eacute;finie au 1 \
d&eacute;cembre 2003 $person->expires =  DB_DataObject_Cast::date(2003,12);



// les valeurs r&eacute;elles sont sotck&eacute;es dans una variable objet

echo $person->birthday->year; // affiche 2003
echo $person->birthday->month; // affiche 12
echo $person->birthday->day; // affiche 21


// vous pouvez effectuer des additions simples de date (similaire &agrave; mktime)

$d = DB_DataObject_Cast::date('01/12/2003');

$nextMonth = DB_DataObject_Cast::date($d->year,$d->month+1,1);


?>
]]>
       </programlisting>
      </example>
     </para>
    </refsect1>
    
    <refsect1>
     <title>Le type SQL</title>
     <para>
      Quelques types sont sp&eacute;cifiques &agrave; SQL ou sont sp&eacute;cifiques \
                une la base de donn&eacute;es, vous pouvez
      dans ce cas, utiliser le type SQL pour mettre une cha&icirc;ne \
particuli&egrave;re dans un traitement SQL.  </para>
     <para>
      <example>
       <title>utilisation particuli&egrave;re de SQL</title>
       <programlisting role="php">
<![CDATA[
<?php
$person = DB_DataObject::factory('person');
$person->get(12);

// d&eacute;finition de l'anniversaire &agrave; NULL.
$person->birthday =  DB_DataObject_Cast::sql('NULL');

// ex&eacute;cution d'un traitement SQL de transtypage (sp&eacute;cifique &agrave; \
PostGres) $data = DB_DataObject_Cast::sql('cast("123123",datetime)');


// maintenant, on insert dans la base de donn&eacute;es.
$person->insert();
 
?>
]]>
       </programlisting>
      </example>
     </para>
    </refsect1>
   </refentry>
 
http://cvs.php.net/co.php/peardoc/fr/package/database/db-dataobject/intro-configuration.xml?r=1.1&p=1
                
Index: peardoc/fr/package/database/db-dataobject/intro-configuration.xml
+++ peardoc/fr/package/database/db-dataobject/intro-configuration.xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.8 Maintainer: yannick Status: ready -->
  <refentry  id="package.database.db-dataobject.intro-configuration">
   <refnamediv>
    <refname>Options de configuration</refname>
    <refpurpose>
     D&eacute;finition des options par d&eacute;faut d'acc&egrave;s &agrave; une base \
de donn&eacute;es  </refpurpose>
    </refnamediv>
    
    <refsect1>
     <title>Configuration</title>
     <para>
      <classname>DB_DataObject</classname>
      doit &ecirc;tre configur&eacute; avant de l'utiliser, \
                d'auto-g&eacute;n&eacute;rer les classes et les d&eacute;finitions.
      La fa&ccedil;on la plus simple de configurer \
                <classname>DB_DataObject</classname>
      est d'utiliser les fichiers ini (bien que vous pourriez vouloir utiliser la \
                classe 
      <classname>PEAR::Config</classname> ou alors votre propre sys&egrave;me de \
configuration)  </para>
     <example>
      <title>Un fichier de configuration typique pour \
<classname>DB_DataObject</classname></title>  <programlisting role="ini">
<![CDATA[
[DB_DataObject]

database    = mysql://user:password@localhost/vending
schema_location = /home/me/Projects/myapplication/DataObjects
class_location  = /home/me/Projects/myapplication/DataObjects
require_prefix  = DataObjects/
class_prefix    = DataObjects_
]]>
      </programlisting>
     </example>
     <para>
      Pour utiliser le fichier ini avec <classname>DB_DataObject</classname> (et \
probablement  tout autre classe qui utilise les options comme ceci)
     </para>
     <example>
      <title>D&eacute;finition des options par d&eacute;faut</title>
      <programlisting role="php">
<![CDATA[

$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
    $options = &PEAR::getStaticProperty($class,'options');
    $options = $values;
}


// ou bien sans utiliser de fichier ini ; configuration &agrave; l'aide de PHP.

$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
    'database'         => 'mysql://user:password@localhost/vending',
    'schema_location'  => '/home/me/Projects/myapplication/DataObjects',
    'class_location'   => '/home/me/Projects/myapplication/DataObjects',
    'require_prefix'   => 'DataObjects/',
    'class_prefix'     => 'DataObjects_',
);
]]>
      </programlisting>
     </example>
    </refsect1>


<!--
Config Options
-->


    <refsect1>
     <title>Options de configuration - Requis</title>
     <variablelist>
     
      <varlistentry>
       <term>
        <parameter>database</parameter>
        <type>DSN</type>
       </term>
       <listitem>
        <para>
         C'est la valeur par d&eacute;faut de &intro.db-dsn; pour se connecter \
&agrave; la base de donn&eacute;es  </para>
       </listitem>
      </varlistentry>
      
      <varlistentry>
       <term>
        <parameter>schema_location</parameter>
        <type>dossier</type>
       </term>
       <listitem>
        <para>
         Le dossier o&ugrave; se trouve le fichier contenant le sch&eacute;ma de base \
de donn&eacute;es   <classname>DB_DataObject</classname>.
        </para>
        <para>
         <classname>DB_DataObject</classname>
         stocke la description de la base de donn&eacute;es (Tables et Colonnes) dans \
                un fichier .ini, 
         dans ce r&eacute;pertoire. Ces informations sont utilis&eacute;es pour \
                d&eacute;terminer si la colonne
         est une cha&icirc;ne de caract&egrave;res et donc, qu'elle a besoin de \
                guillemets ou si c'est un nombre
         ( et qu'il est s&eacute;lectionn&eacute;) au moment de construire la \
                requ&ecirc;te SQL. Habituellement, on stocke le
         sch&eacute;ma dans le m&ecirc;me dossier que celui contenant les classes \
DataObject.  </para>
       </listitem>
      </varlistentry>
      
      <varlistentry>
       <term>
        <parameter>require_prefix</parameter>
        <type>dossier</type>
       </term>
       <listitem>
        <para>
         Le chemin absolu ou relatif vers votre chemin d'inclusion par d&eacute;faut, \
o&ugrave; vos extensions de classes  peuvent &ecirc;tre trouv&eacute;es.
        </para>
        <para>
         Il est utilis&eacute; par les m&eacute;thodes 
         <link linkend="package.database.db-dataobject.db-dataobject.staticget"><function>staticGet</function></link> \
                et
         <link linkend="package.database.db-dataobject.db-dataobject.getlinks"><function>getLinks</function></link> \
pour charger automatiquement les classes.  </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>
         <parameter>class_prefix</parameter>
         <type>string</type>
       </term>
       <listitem>
        <para>
         Toutes les classes g&eacute;n&eacute;r&eacute;es sont nomm&eacute;es en \
suivant ce sch&eacute;ma :  \
                <parameter>{class_prefix}ucfirst($table_name)</parameter>. 
         Utilisez ce param&egrave;tre pour pr&eacute;fixer ce nom, il est \
utilis&eacute; par les m&eacute;thodes  <link
         linkend="package.database.db-dataobject.db-dataobject.staticget"><function>staticGet</function></link> \
et  <link linkend="package.database.db-dataobject.db-dataobject.getlinks"><function>getLinks</function></link>.
  </para>
       </listitem>
      </varlistentry>
      
     </variablelist>
    </refsect1>

<!--
Config Options - Optional
-->


    <refsect1>
     <title>Options de configuration - Optionnelles</title>

     <variablelist>
     
      <varlistentry>
       <term>
        <parameter>sequence_{table}</parameter>
        <type>string</type>
       </term>
       <listitem>
        <para>
         Pour coder en dur la cl&eacute; (autoincr&eacute;ment/valeur suivante) pour \
                une table &agrave; une cl&eacute; sp&eacute;cifique,
         effa&ccedil;ant tout ce qui est d&eacute;fini pour cette cl&eacute; dans le \
                fichier. Normalement utilis&eacute; sur les bases 
         de donn&eacute;es qui ne peuvent pas &ecirc;tre interrog&eacute;es \
correctement sur leur structure  <example>
          <title>utilisation du login comme cl&eacute; pour une table de \
personne</title>  <programlisting role="ini">
<![CDATA[
sequence_person = login
]]>
          </programlisting>
         </example>
        </para>
       </listitem>
      </varlistentry>
        
      <varlistentry>
       <term>
        <parameter>ignore_sequence_keys</parameter>
        <type>string</type>
       </term>
       <listitem>
        <para>
         Si vous ne voulez pas utiliser nextval() de PEAR, pour  compl&eacute;ter \
                automatiquement les s&eacute;quences,
         cel&agrave; peut &ecirc;tre d&eacute;sactiv&eacute; pour &quot;ALL&quot; ou \
pour une liste de tables   &quot;person,cart,group&quot;
        </para>
       </listitem>
      </varlistentry>
        
      <varlistentry>
       <term>
        <parameter>debug</parameter>
        <type>integer</type>
       </term>
       <listitem>
        <para>
         Le degr&egrave;s de d&eacute;bogage (d&eacute;faut 0=off), 1= identification \
basique SQL, 2=r&eacute;sultat d'identification,   3=tout
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>
        <parameter>debug_ignore_updates</parameter>
        <type>boolean</type>
       </term>
       <listitem>
        <para>
         Si d&eacute;finie, les mises &agrave; jour sur la base de donn&eacute;es \
sont d&eacute;sactiv&eacute;es. Par d&eacute;faut : &false;  </para>
       </listitem>
      </varlistentry>
        
       
      <varlistentry>
       <term>
        <parameter>dont_die</parameter>
        <type>boolean</type>
       </term>
       <listitem>
        <para>
         Par d&eacute;faut : &false;. Le comportement standard de dataobjects est de \
                fournir
         un PEAR_ERROR_DIE (e.g. sortie PHP) lorsqu'une erreur survient, comme une \
                identification
         qui &eacute;choue &agrave; une base de donn&eacute;es ou lorsqu'on envoie un \
                objet de type invalide &agrave; une
         m&eacute;thode. Cependant, si vous devez ex&eacute;cuter cel&agrave; sur un \
                serveur directement, 
         vous devez probablement vouloir d&eacute;finir ce param&egrave;tre &agrave; \
                &true; et d&eacute;finir la gestion
         des erreurs PEAR pour r&eacute;cup&eacute;rer ces erreurs et afficher un \
                joli message
         'd&eacute;sol&eacute;, nous sommes hors service pour maintenance' sur la \
page.  </para>
       </listitem>
      </varlistentry>
      
     </variablelist>
     
    </refsect1>


<!--
Config Options - Multi Database
-->

    <refsect1>
     <title>Opitons de configuration - Bases de donn&eacute;es multiples \
(optionnel)</title>  <variablelist>
      <varlistentry>
       <term>
         <parameter>database_*</parameter>
         <type>string</type>
        </term>
        <listitem>
        <para>
         Lorsque vous avez de multiples bases de donn&eacute;es, vous pouvez utiliser \
                le database_*
         our sp&eacute;cifier le &intro.db-dsn; pour chaque base de donn&eacute;es
        </para>
        <para>
         <example>
          <title>utilisation de multiples bases de donn&eacute;es - mot de passe des \
bases de donn&eacute;es</title>  <programlisting role="ini">
<![CDATA[
database_authentication  = mysql://user:password@localhost/authentication
database_sales           = mysql://user:password@localhost/sales
]]>
          </programlisting>
         </example>
        </para>
       </listitem>
      </varlistentry>
      
      <varlistentry>
       <term>
        <parameter>table_*</parameter>
        <type>string</type>
       </term>
       <listitem>
        <para>
         When you have multiple databases you can use the table_* configuration \
variables to map  individual tables to different databases, for example
        </para>
        <para>
         <example>
          <title> using multiple databases - table settings</title>
          <programlisting role="ini">
table_users     = authentication
table_saleslog  = sales
table_stock     = sales
          </programlisting>
         </example>
        </para>
       </listitem>
      </varlistentry>
      
     </variablelist>
     
    </refsect1>

<!--

              Config Options - BUILDER

-->

    <refsect1>
     <title>Options de configuration - Construction</title>
     
     <variablelist>
     
      <varlistentry>
       <term>
        <parameter>class_location</parameter>
        <type>dossier</type>
       </term>
       <listitem>
        <para>
         Le dossier o&ugrave; se trouve vos extensions de classes DataObject.
        </para>
        <para>
         Utilisez par la classe d'auto-construction lors de la mise &agrave; \
jour/&eacute;criture de vos d&eacute;finitions de c  classes.
        </para>
       </listitem>
      </varlistentry>


      <varlistentry>
       <term>
        <parameter>extends</parameter>
        <type>string</type>
       </term>
       <listitem>
        <para>
         Le nom de la classe de base (habituellement \
<classname>DB_DataObject</classname>)  </para>
        <para>
         Si vous souhaitez ajouter une interface commune pour les m&eacute;thodes \
                utiles pour toutes les classes,
         vous pouvez d&eacute;finir les options extends_location et extends en une \
classe diff&eacute;rente.  Par d&eacute;faut, c'est \
<parameter>'DB_DataObject'</parameter>.  </para>
       </listitem>
      </varlistentry>
      
      <varlistentry>
       <term>
        <parameter>extends_location</parameter>
        <type>dossier</type>
       </term>
       <listitem>
        <para>
         Le dossier o&ugrave; votre classe de base (habituellement \
<classname>DB_DataObject</classname>)  se trouve.
        </para>
        <para>
         Si vous souhaitez ajouter une interface commune pour les m&eacute;thodes \
                utiles pour toutes les classes,
         vous pouvez d&eacute;finir les options extends_location et extends en une \
                classe diff&eacute;rente.
         Par d&eacute;faut, c'est <parameter>'DB/DataObject.php'</parameter>.
        </para>
       </listitem>
      </varlistentry>
      
      <varlistentry>
       <term>
        <parameter>generator_class_rewrite</parameter>
        <type>dossier</type>
       </term>
       <listitem>
        <para>
         Normalement, lorsque vous cr&eacute;ez &agrave; nouveau une classe depuis la \
                base de donn&eacute;es, cel&agrave; n'alt&egrave;re
         que les variables et la m&eacute;thode staticGet. Avec ce param&egrave;tre, \
cette action peut &eacute;galement  mettre &agrave; jour les champs &eacute;tendus
        </para>
       </listitem>
      </varlistentry>
      
     </variablelist>
     
    </refsect1>
   </refentry>
<!-- 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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->



-- 
PEAR Documentation List Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic