| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?xml version="1.0" encoding="utf-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.ini">
- <title>Zend_Config_Ini</title>
- <para>
- <classname>Zend_Config_Ini</classname> permet aux développeurs de stocker des données de
- configuration dans le format familier d'un fichier <acronym>INI</acronym> et de les lire
- dans l'application en employant une syntaxe de propriétés d'objet imbriquées. Le format
- <acronym>INI</acronym> est spécialisé pour fournir à la fois la capacité d'avoir une
- hiérarchie des données de configuration et permettre l'héritage entre les sections de
- données de configuration. La hiérarchie des données de configuration est supportée grâce
- au fractionnement des clés à l'aide de points (<emphasis>.</emphasis>). Une section peut
- être étendue ou héritée d'une autre section en suivant le nom de section avec le caractère
- de deux points (<emphasis>:</emphasis>) et le nom de la section de laquelle des données
- doivent être héritées.
- </para>
- <note>
- <title>Analyse d'un fichier INI</title>
- <para>
- <classname>Zend_Config_Ini</classname> utilise la fonction
- <ulink
- url="http://fr.php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></ulink>
- de <acronym>PHP</acronym>. Veuillez prendre connaissance de la documentation pour
- appréhender ses comportements spécifiques, qui se propagent à
- <classname>Zend_Config_Ini</classname>, tel que la façon dont les valeurs
- spéciales : <constant>TRUE</constant>, <constant>FALSE</constant>,
- "yes", "no" et <constant>NULL</constant> sont manipulées.
- </para>
- </note>
- <note>
- <title>Séparateur de clé</title>
- <para>
- Par défaut, le séparateur de clé est le caractère point (<emphasis>.</emphasis>),
- cependant cela peut être changé en changeant la clé <property>nestSeparator</property>
- de <varname>$options</varname>
- en construisant l'objet
- <classname>Zend_Config_Ini</classname>. Par exemple :
- </para>
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $options = new Zend_Config_Ini('/chemin/vers/config.ini',
- 'test',
- $options);
- ]]></programlisting>
- </note>
- <example id="zend.config.adapters.ini.example.using">
- <title>Utiliser Zend_Config_Ini</title>
- <para>
- Cet exemple illustre une utilisation de base de <classname>Zend_Config_Ini</classname>
- pour le chargement des données de configuration à partir d'un fichier
- <acronym>INI</acronym>. Dans cet
- exemple il y a des données de configuration pour un environnement de production et pour
- un environnement de test. Puisque les données de configuration de l'environnement de
- test sont très semblables à celles de la production, la section de test hérite de la
- section de production. Dans ce cas, la décision est arbitraire et pourrait avoir été
- écrite réciproquement, avec la section de production héritant de la section de test,
- bien que ceci ne doit pas être le cas pour des situations plus complexes. Supposons,
- que les données suivantes de configuration sont contenues dans
- <filename>/chemin/vers/config.ini</filename> :
- </para>
- <programlisting language="ini"><![CDATA[
- ; Données de configuration du site de production
- [production]
- webhost = www.example.com
- database.adapter = pdo_mysql
- database.params.host = db.example.com
- database.params.username = dbuser
- database.params.password = secret
- database.params.dbname = dbname
- ; Données de configuration du site de test héritant du site
- ; de production et surchargeant les clés nécessaires
- [test : production]
- database.params.host = dev.example.com
- database.params.username = devuser
- database.params.password = devsecret
- ]]></programlisting>
- <para>
- Ensuite, supposons que le développeur ait besoin des données de configuration de
- test issues du fichier <acronym>INI</acronym>. Il est facile de charger ces données
- en indiquant le fichier <acronym>INI</acronym> et la section de test :
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Ini('/chemin/vers/config.ini', 'test');
- echo $config->database->params->host; // affiche "dev.example.com"
- echo $config->database->params->dbname; // affiche "dbname"
- ]]></programlisting>
- </example>
- <note>
- <table id="zend.config.adapters.ini.table">
- <title>Paramètres du constructeur de Zend_Config_Ini</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Paramètres</entry>
- <entry>Notes</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><varname>$filename</varname></entry>
- <entry>Le fichier <acronym>INI</acronym> à charger.</entry>
- </row>
- <row>
- <entry><varname>$section</varname></entry>
- <entry>
- La [section] dans le fichier <acronym>INI</acronym> qui doit être
- chargé. L'affectation de <constant>NULL</constant> à ce paramètre
- chargera toutes les sections. Alternativement, un tableau de noms
- de section peut être fourni pour charger des sections multiples.
- </entry>
- </row>
- <row>
- <entry>
- <varname>$options</varname> (par défaut <constant>FALSE</constant>)
- </entry>
- <entry>
- Tableau d'options. Les clés suivantes sont supportées :
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>allowModifications</property></emphasis> :
- Mettre à <constant>TRUE</constant> pour permettre la
- modification en mémoire des données de configuration
- chargées. Par défaut à <constant>FALSE</constant>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>nestSeparator</property></emphasis> :
- Caractère à utiliser en tant que séparateur d'imbrication.
- Par défaut ".".
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </note>
- </sect1>
|