|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
-<!-- EN-Revision: 15103 -->
|
|
|
|
|
|
|
+<!-- EN-Revision: 16393 -->
|
|
|
<!-- Reviewed: no -->
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.config.theory_of_operation">
|
|
<sect1 id="zend.config.theory_of_operation">
|
|
|
<title>Aspect théorique</title>
|
|
<title>Aspect théorique</title>
|
|
@@ -11,7 +11,7 @@
|
|
|
spécifique. Les classes d'adaptateur concrètes permettent de construire le tableau
|
|
spécifique. Les classes d'adaptateur concrètes permettent de construire le tableau
|
|
|
associatif pour le constructeur de <classname>Zend_Config</classname> à partir du système
|
|
associatif pour le constructeur de <classname>Zend_Config</classname> à partir du système
|
|
|
de stockage des données de configuration. Dans certaines utilisations spécifiques, les
|
|
de stockage des données de configuration. Dans certaines utilisations spécifiques, les
|
|
|
- scripts de l'utilisateur peuvent fournir de tels tableaux (<code>array</code>) directement
|
|
|
|
|
|
|
+ scripts de l'utilisateur peuvent fournir de tels tableaux directement
|
|
|
au constructeur de <classname>Zend_Config</classname>, sans employer une classe
|
|
au constructeur de <classname>Zend_Config</classname>, sans employer une classe
|
|
|
d'adaptateur.
|
|
d'adaptateur.
|
|
|
</para>
|
|
</para>
|
|
@@ -26,40 +26,42 @@
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Config</classname> implémente les interfaces <code>Countable</code> et
|
|
|
|
|
- <code>Iterator</code> afin de faciliter l'accès simple aux données de configuration. Ainsi,
|
|
|
|
|
- on peut employer la fonction
|
|
|
|
|
- <ulink url="http://fr.php.net/count"><code>count()</code></ulink> et des constructions de
|
|
|
|
|
- PHP telles que
|
|
|
|
|
- <ulink url="http://fr.php.net/foreach"><code>foreach</code></ulink> sur des objets
|
|
|
|
|
|
|
+ <classname>Zend_Config</classname> implémente les interfaces <emphasis>Countable</emphasis>
|
|
|
|
|
+ et <emphasis>Iterator</emphasis> afin de faciliter l'accès simple aux données de
|
|
|
|
|
+ configuration. Ainsi, on peut employer la fonction
|
|
|
|
|
+ <ulink url="http://fr.php.net/count"><methodname>count()</methodname></ulink>
|
|
|
|
|
+ et des constructions de <acronym>PHP</acronym> telles que
|
|
|
|
|
+ <ulink url="http://fr.php.net/foreach"><emphasis>foreach</emphasis></ulink> sur des objets
|
|
|
<classname>Zend_Config</classname>.
|
|
<classname>Zend_Config</classname>.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
Par défaut, les données de configuration fournies par <classname>Zend_Config</classname> ne
|
|
Par défaut, les données de configuration fournies par <classname>Zend_Config</classname> ne
|
|
|
sont pas modifiables (lecture seule), et une affectation (par exemple,
|
|
sont pas modifiables (lecture seule), et une affectation (par exemple,
|
|
|
- <code>$config->database->host = 'example.com'</code>) lèvera une exception. Ce
|
|
|
|
|
|
|
+ <command>$config->database->host = 'example.com'</command>) lèvera une exception. Ce
|
|
|
comportement par défaut peut cependant être surchargé par le constructeur pour permettre la
|
|
comportement par défaut peut cependant être surchargé par le constructeur pour permettre la
|
|
|
modification des valeurs de données. De plus, quand les modifications sont autorisées,
|
|
modification des valeurs de données. De plus, quand les modifications sont autorisées,
|
|
|
<classname>Zend_Config</classname> supporte l'effacement de valeurs (c'est-à-dire
|
|
<classname>Zend_Config</classname> supporte l'effacement de valeurs (c'est-à-dire
|
|
|
- <code>unset($config->database->host);</code>). La méthode <code>readOnly()</code>
|
|
|
|
|
- peut être utilisée pour déterminer si les modifications sont autorisés pour un objet
|
|
|
|
|
- <classname>Zend_Config</classname> donné et la méthode <code>setReadOnly()</code> peut être
|
|
|
|
|
|
|
+ <methodname>unset($config->database->host)</methodname>). La méthode
|
|
|
|
|
+ <methodname>readOnly()</methodname> peut être utilisée pour déterminer si les modifications
|
|
|
|
|
+ sont autorisés pour un objet <classname>Zend_Config</classname> donné et la méthode
|
|
|
|
|
+ <methodname>setReadOnly()</methodname> peut être
|
|
|
utilisée pour empêcher toute nouvelle modification d'un objet
|
|
utilisée pour empêcher toute nouvelle modification d'un objet
|
|
|
<classname>Zend_Config</classname> qui aurait été créé en autorisant le modifications.
|
|
<classname>Zend_Config</classname> qui aurait été créé en autorisant le modifications.
|
|
|
- <note>
|
|
|
|
|
- <para>
|
|
|
|
|
- Il est important de ne pas confondre des modifications en cours de script avec
|
|
|
|
|
- l'enregistrement des données de configuration dans le support de stockage
|
|
|
|
|
- spécifique. Les outils pour créer et modifier des données de configuration pour
|
|
|
|
|
- différents supports de stockage ne concernent pas
|
|
|
|
|
- <classname>Zend_Config</classname>. Des solutions tiers open-source sont facilement
|
|
|
|
|
- disponibles afin de créer et/ou de modifier les données de configuration pour
|
|
|
|
|
- différents supports de stockage.
|
|
|
|
|
- </para>
|
|
|
|
|
- </note>
|
|
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
|
|
+ <note>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ Il est important de ne pas confondre des modifications en cours de script avec
|
|
|
|
|
+ l'enregistrement des données de configuration dans le support de stockage
|
|
|
|
|
+ spécifique. Les outils pour créer et modifier des données de configuration pour
|
|
|
|
|
+ différents supports de stockage ne concernent pas
|
|
|
|
|
+ <classname>Zend_Config</classname>. Des solutions tiers open-source sont facilement
|
|
|
|
|
+ disponibles afin de créer et / ou de modifier les données de configuration
|
|
|
|
|
+ pour différents supports de stockage.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </note>
|
|
|
|
|
+
|
|
|
<para>
|
|
<para>
|
|
|
Les classes d'adaptateur héritent de la classe de <classname>Zend_Config</classname> ce qui
|
|
Les classes d'adaptateur héritent de la classe de <classname>Zend_Config</classname> ce qui
|
|
|
permet d'utiliser ses fonctionnalités.
|
|
permet d'utiliser ses fonctionnalités.
|
|
@@ -78,26 +80,28 @@
|
|
|
de configuration dans d'autres. Ceci afin de réduire ou d'éliminer le besoin de reproduire
|
|
de configuration dans d'autres. Ceci afin de réduire ou d'éliminer le besoin de reproduire
|
|
|
des données de configuration pour différents cas. Une section héritante peut également
|
|
des données de configuration pour différents cas. Une section héritante peut également
|
|
|
surchargée les valeurs dont elle hérite de sa section parente. Comme l'héritage des classes
|
|
surchargée les valeurs dont elle hérite de sa section parente. Comme l'héritage des classes
|
|
|
- PHP, une section peut hériter d'une section parent, qui peut hériter d'une section
|
|
|
|
|
- grand-parent, et ainsi de suite, mais l'héritage multiple (c.-à-d., la section C héritant
|
|
|
|
|
- directement des sections parents A et B) n'est pas supporté.
|
|
|
|
|
|
|
+ <acronym>PHP</acronym>, une section peut hériter d'une section parent, qui peut hériter
|
|
|
|
|
+ d'une section grand-parent, et ainsi de suite, mais l'héritage multiple (c.-à-d., la
|
|
|
|
|
+ section C héritant directement des sections parents A et B) n'est pas supporté.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
Si vous avez deux objets <classname>Zend_Config</classname>, vous pouvez les fusionner en
|
|
Si vous avez deux objets <classname>Zend_Config</classname>, vous pouvez les fusionner en
|
|
|
- un objet unique en utilisant la fonction <code>merge()</code>. Par exemple, prenons
|
|
|
|
|
- <code>$config</code> et <code>$localConfig</code>, vous pouvez fusionner
|
|
|
|
|
- <code>$localConfig</code> dans <code>$config</code> en utilisant
|
|
|
|
|
- <code>$config->merge($localConfig);</code>. Les éléments de
|
|
|
|
|
- <code>$localConfig</code> surchargeront les éléments nommés de la même manière dans
|
|
|
|
|
- <code>$config</code>.
|
|
|
|
|
- <note>
|
|
|
|
|
- <para>
|
|
|
|
|
- L'objet <classname>Zend_Config</classname> qui réalise la fusion doit avoir été
|
|
|
|
|
- construit en autorisant les modifications, en fournissant <code>true</code> en tant
|
|
|
|
|
- que second paramètre du constructeur. La méthode setReadOnly() peut être utilisée
|
|
|
|
|
- pour empêcher toute nouvelle modification après la fin de la fusion.
|
|
|
|
|
- </para>
|
|
|
|
|
- </note>
|
|
|
|
|
|
|
+ un objet unique en utilisant la fonction <methodname>merge()</methodname>. Par exemple,
|
|
|
|
|
+ prenons <varname>$config</varname> et <varname>$localConfig</varname>, vous pouvez fusionner
|
|
|
|
|
+ <varname>$localConfig</varname> dans <varname>$config</varname> en utilisant
|
|
|
|
|
+ <methodname>$config->merge($localConfig)</methodname>. Les éléments de
|
|
|
|
|
+ <varname>$localConfig</varname> surchargeront les éléments nommés de la même manière dans
|
|
|
|
|
+ <varname>$config</varname>.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
+
|
|
|
|
|
+ <note>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ L'objet <classname>Zend_Config</classname> qui réalise la fusion doit avoir été
|
|
|
|
|
+ construit en autorisant les modifications, en fournissant <constant>TRUE</constant>
|
|
|
|
|
+ en tant que second paramètre du constructeur. La méthode
|
|
|
|
|
+ <methodname>setReadOnly()</methodname> peut être utilisée pour empêcher toute nouvelle
|
|
|
|
|
+ modification après la fin de la fusion.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </note>
|
|
|
</sect1>
|
|
</sect1>
|