Zend_Config_Ini.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.config.adapters.ini">
  5. <title>Zend_Config_Ini</title>
  6. <para>
  7. <classname>Zend_Config_Ini</classname> permet aux développeurs de stocker des données de
  8. configuration dans le format familier d'un fichier <acronym>INI</acronym> et de les lire
  9. dans l'application en employant une syntaxe de propriétés d'objet imbriquées. Le format
  10. <acronym>INI</acronym> est spécialisé pour fournir à la fois la capacité d'avoir une
  11. hiérarchie des données de configuration et permettre l'héritage entre les sections de
  12. données de configuration. La hiérarchie des données de configuration est supportée grâce
  13. au fractionnement des clés à l'aide de points (<emphasis>.</emphasis>). Une section peut
  14. être étendue ou héritée d'une autre section en suivant le nom de section avec le caractère
  15. de deux points (<emphasis>:</emphasis>) et le nom de la section de laquelle des données
  16. doivent être héritées.
  17. </para>
  18. <note>
  19. <title>Analyse d'un fichier INI</title>
  20. <para>
  21. <classname>Zend_Config_Ini</classname> utilise la fonction
  22. <ulink
  23. url="http://fr.php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></ulink>
  24. de <acronym>PHP</acronym>. Veuillez prendre connaissance de la documentation pour
  25. appréhender ses comportements spécifiques, qui se propagent à
  26. <classname>Zend_Config_Ini</classname>, tel que la façon dont les valeurs
  27. spéciales&#160;: <constant>TRUE</constant>, <constant>FALSE</constant>,
  28. "yes", "no" et <constant>NULL</constant> sont manipulées.
  29. </para>
  30. </note>
  31. <note>
  32. <title>Séparateur de clé</title>
  33. <para>
  34. Par défaut, le séparateur de clé est le caractère point (<emphasis>.</emphasis>),
  35. cependant cela peut être changé en changeant la clé <property>nestSeparator</property>
  36. de <varname>$options</varname>
  37. en construisant l'objet
  38. <classname>Zend_Config_Ini</classname>. Par exemple&#160;:
  39. </para>
  40. <programlisting language="php"><![CDATA[
  41. $options['nestSeparator'] = ':';
  42. $options = new Zend_Config_Ini('/chemin/vers/config.ini',
  43. 'test',
  44. $options);
  45. ]]></programlisting>
  46. </note>
  47. <example id="zend.config.adapters.ini.example.using">
  48. <title>Utiliser Zend_Config_Ini</title>
  49. <para>
  50. Cet exemple illustre une utilisation de base de <classname>Zend_Config_Ini</classname>
  51. pour le chargement des données de configuration à partir d'un fichier
  52. <acronym>INI</acronym>. Dans cet
  53. exemple il y a des données de configuration pour un environnement de production et pour
  54. un environnement de test. Puisque les données de configuration de l'environnement de
  55. test sont très semblables à celles de la production, la section de test hérite de la
  56. section de production. Dans ce cas, la décision est arbitraire et pourrait avoir été
  57. écrite réciproquement, avec la section de production héritant de la section de test,
  58. bien que ceci ne doit pas être le cas pour des situations plus complexes. Supposons,
  59. que les données suivantes de configuration sont contenues dans
  60. <filename>/chemin/vers/config.ini</filename>&#160;:
  61. </para>
  62. <programlisting language="ini"><![CDATA[
  63. ; Données de configuration du site de production
  64. [production]
  65. webhost = www.example.com
  66. database.adapter = pdo_mysql
  67. database.params.host = db.example.com
  68. database.params.username = dbuser
  69. database.params.password = secret
  70. database.params.dbname = dbname
  71. ; Données de configuration du site de test héritant du site
  72. ; de production et surchargeant les clés nécessaires
  73. [test : production]
  74. database.params.host = dev.example.com
  75. database.params.username = devuser
  76. database.params.password = devsecret
  77. ]]></programlisting>
  78. <para>
  79. Ensuite, supposons que le développeur ait besoin des données de configuration de
  80. test issues du fichier <acronym>INI</acronym>. Il est facile de charger ces données
  81. en indiquant le fichier <acronym>INI</acronym> et la section de test&#160;:
  82. </para>
  83. <programlisting language="php"><![CDATA[
  84. $config = new Zend_Config_Ini('/chemin/vers/config.ini', 'test');
  85. echo $config->database->params->host; // affiche "dev.example.com"
  86. echo $config->database->params->dbname; // affiche "dbname"
  87. ]]></programlisting>
  88. </example>
  89. <note>
  90. <table id="zend.config.adapters.ini.table">
  91. <title>Paramètres du constructeur de Zend_Config_Ini</title>
  92. <tgroup cols="2">
  93. <thead>
  94. <row>
  95. <entry>Paramètres</entry>
  96. <entry>Notes</entry>
  97. </row>
  98. </thead>
  99. <tbody>
  100. <row>
  101. <entry><varname>$filename</varname></entry>
  102. <entry>Le fichier <acronym>INI</acronym> à charger.</entry>
  103. </row>
  104. <row>
  105. <entry><varname>$section</varname></entry>
  106. <entry>
  107. La [section] dans le fichier <acronym>INI</acronym> qui doit être
  108. chargé. L'affectation de <constant>NULL</constant> à ce paramètre
  109. chargera toutes les sections. Alternativement, un tableau de noms
  110. de section peut être fourni pour charger des sections multiples.
  111. </entry>
  112. </row>
  113. <row>
  114. <entry>
  115. <varname>$options</varname> (par défaut <constant>FALSE</constant>)
  116. </entry>
  117. <entry>
  118. Tableau d'options. Les clés suivantes sont supportées&#160;:
  119. <itemizedlist>
  120. <listitem>
  121. <para>
  122. <emphasis><property>allowModifications</property></emphasis>&#160;:
  123. Mettre à <constant>TRUE</constant> pour permettre la
  124. modification en mémoire des données de configuration
  125. chargées. Par défaut à <constant>FALSE</constant>.
  126. </para>
  127. </listitem>
  128. <listitem>
  129. <para>
  130. <emphasis><property>nestSeparator</property></emphasis>&#160;:
  131. Caractère à utiliser en tant que séparateur d'imbrication.
  132. Par défaut ".".
  133. </para>
  134. </listitem>
  135. </itemizedlist>
  136. </entry>
  137. </row>
  138. </tbody>
  139. </tgroup>
  140. </table>
  141. </note>
  142. </sect1>