[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é les \
chaînes de caractères et le nombres)</title>
<warning>
<para>
Ceci est expérimental ! Bien que ce soit documenté, c'est \
actuellement supporté uniquement
sur une liste limitée de base de données (envoyez-moi des \
patchs si vous voulez que celà
supporte votre base de données favorites) et l'API interne devrait \
changer dans le futur... </para>
</warning>
<para>
DataObjects est une façon très simple de travailler avec les \
bases de données qui sont focalisées sur les nombres et les \
chaînes de caractères.
Vous pouvez également l'utiliser sur les champs date (bien que vous \
deviez formater vos
chaînes correctement) et vous pouvez l'utiliser avec d'autres types en \
utilisant des requêtes SQL
spéciales, et la chaîne de caractères "null" est \
automatiquement convertie en NULL dans la base de données.
</para>
<para>
Dans un but de fournir une façon claire de coder les types riches de \
base de données, l'objet DB_DataObject_Cast a été \
créé.
Il propose de créer simplement un objet représentant la plus \
part des types les moins
fréquemment utilisés. A suivre, un exemple d'utilisation pour \
créer quelques types simples. </para>
<para>
L'objet de transtypage peut être utilisé dans la construction de \
la requê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ê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écembre 2002<br />";
}
// utiliser l'objet de transtypage pour assigner des valeurs.
$person = DB_DataObject::factory('person');
$person->get(12);
// définir l'anniversaire de la personne au 30 décembre 2000
$person->birthday = DB_DataObject_Cast::date(2000,12,30);
// maintenant, on met à jour la base de données.
$person->update();
?>
]]>
</programlisting>
</example>
</para>
<para>
Comme vous pouvez le voir, ce composant est basique, donc, si vous voulez \
d'autres
fonctionnalités, si vous avez des idées, n'hésitez \
surtout pas à me contacter à 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é de \
données binaires dans une base de données.
</para>
<para>
Actuellement, seuls les types Blob sont supportés dans PostGres en \
utilisant le type de bites.
(merci de me contacter avec un patch pour les autre bases de donné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ées binaires.
$person->photo = DB_DataObject_Cast::blob(file_get_contents('xxx.jpg'));
// utilisation d'une chaîne de caractères pour les donné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ées.
$person->insert();
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1>
<title>Le type Date</title>
<para>
La plupart des dates sont stockées dans une base de données au \
format standard ISO, cette
méthode vous permet de créer des types Date, depuis soit \
l'année, le mois, le jour,
humainement lisibile (jour/mois/année) ou au format ISO standard \
année-mois-jour.
Il complète les valeurs restantes en se basant sur des rè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ée - actuellement définie au 1 \
décembre 2003 $person->expires = DB_DataObject_Cast::date('12/2003');
// utilisation uniquement de l'année - actuellement dé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ée-mois - actuellement définie au 1 \
dé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ée-mois - actuellement définie au 1 \
décembre 2003 $person->expires = DB_DataObject_Cast::date(2003,12);
// les valeurs réelles sont sotcké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 à 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écifiques à SQL ou sont spécifiques \
une la base de données, vous pouvez
dans ce cas, utiliser le type SQL pour mettre une chaîne \
particulière dans un traitement SQL. </para>
<para>
<example>
<title>utilisation particulière de SQL</title>
<programlisting role="php">
<![CDATA[
<?php
$person = DB_DataObject::factory('person');
$person->get(12);
// définition de l'anniversaire à NULL.
$person->birthday = DB_DataObject_Cast::sql('NULL');
// exécution d'un traitement SQL de transtypage (spécifique à \
PostGres) $data = DB_DataObject_Cast::sql('cast("123123",datetime)');
// maintenant, on insert dans la base de donné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éfinition des options par défaut d'accès à une base \
de données </refpurpose>
</refnamediv>
<refsect1>
<title>Configuration</title>
<para>
<classname>DB_DataObject</classname>
doit être configuré avant de l'utiliser, \
d'auto-générer les classes et les définitions.
La faç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è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éfinition des options par dé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 à 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éfaut de &intro.db-dsn; pour se connecter \
à la base de données </para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>schema_location</parameter>
<type>dossier</type>
</term>
<listitem>
<para>
Le dossier où se trouve le fichier contenant le schéma de base \
de données <classname>DB_DataObject</classname>.
</para>
<para>
<classname>DB_DataObject</classname>
stocke la description de la base de données (Tables et Colonnes) dans \
un fichier .ini,
dans ce répertoire. Ces informations sont utilisées pour \
déterminer si la colonne
est une chaîne de caractères et donc, qu'elle a besoin de \
guillemets ou si c'est un nombre
( et qu'il est sélectionné) au moment de construire la \
requête SQL. Habituellement, on stocke le
schéma dans le mê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éfaut, \
où vos extensions de classes peuvent être trouvées.
</para>
<para>
Il est utilisé par les mé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énérées sont nommées en \
suivant ce schéma : \
<parameter>{class_prefix}ucfirst($table_name)</parameter>.
Utilisez ce paramètre pour préfixer ce nom, il est \
utilisé par les mé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é (autoincrément/valeur suivante) pour \
une table à une clé spécifique,
effaçant tout ce qui est défini pour cette clé dans le \
fichier. Normalement utilisé sur les bases
de données qui ne peuvent pas être interrogées \
correctement sur leur structure <example>
<title>utilisation du login comme clé 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éter \
automatiquement les séquences,
celà peut être désactivé pour "ALL" ou \
pour une liste de tables "person,cart,group"
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>debug</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Le degrès de débogage (défaut 0=off), 1= identification \
basique SQL, 2=résultat d'identification, 3=tout
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>debug_ignore_updates</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Si définie, les mises à jour sur la base de données \
sont désactivées. Par défaut : &false; </para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>dont_die</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Par dé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 échoue à une base de données ou lorsqu'on envoie un \
objet de type invalide à une
méthode. Cependant, si vous devez exécuter celà sur un \
serveur directement,
vous devez probablement vouloir définir ce paramètre à \
&true; et définir la gestion
des erreurs PEAR pour récupérer ces erreurs et afficher un \
joli message
'désolé, 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ées multiples \
(optionnel)</title> <variablelist>
<varlistentry>
<term>
<parameter>database_*</parameter>
<type>string</type>
</term>
<listitem>
<para>
Lorsque vous avez de multiples bases de données, vous pouvez utiliser \
le database_*
our spécifier le &intro.db-dsn; pour chaque base de données
</para>
<para>
<example>
<title>utilisation de multiples bases de données - mot de passe des \
bases de donné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ù se trouve vos extensions de classes DataObject.
</para>
<para>
Utilisez par la classe d'auto-construction lors de la mise à \
jour/écriture de vos dé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éthodes \
utiles pour toutes les classes,
vous pouvez définir les options extends_location et extends en une \
classe différente. Par dé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ù votre classe de base (habituellement \
<classname>DB_DataObject</classname>) se trouve.
</para>
<para>
Si vous souhaitez ajouter une interface commune pour les méthodes \
utiles pour toutes les classes,
vous pouvez définir les options extends_location et extends en une \
classe différente.
Par dé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éez à nouveau une classe depuis la \
base de données, celà n'altère
que les variables et la méthode staticGet. Avec ce paramètre, \
cette action peut également mettre à jour les champs é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