Zend_Config_Ini.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <sect1 id="zend.config.adapters.ini">
  2. <title>Zend_Config_Ini</title>
  3. <para>
  4. <code>Zend_Config_Ini</code> staat programmeurs toe configuratiedata op te slaan in een
  5. vertrouwd INI formaat en deze terug in te lezen in de applicatie door gebruik te maken van
  6. een syntax met geneste objecteigenschappen. Het INI formaat is gespecializeerd om een
  7. hiërarchie van configuratiedata keys te verstrekken, evenals de erfelijkheid tussen
  8. verschillende configuratiedata secties. Hiërachies van configuratiedata worden ondersteund
  9. door de keys te scheiden met een punt (<code>.</code>). Een sectie kan een andere sectie
  10. uitbreiden of overerven door een dubbelpunt te schrijven achter de sectienaam
  11. (<code>:</code>) en de naam van de sectie waarvan de data wordt geërfd.
  12. </para>
  13. <note>
  14. <title>parse_ini_file</title>
  15. <para>
  16. <code>Zend_Config_Ini</code> gebruikt de
  17. <ulink url="http://php.net/parse_ini_file"><code>parse_ini_file()</code></ulink>
  18. PHP functie. Ga deze documentatie na om op de hoogte te zijn van specifiek gedrag
  19. van de functie, die wordt overgedragen naar <code>Zend_Config_Ini</code>, zoals hoe
  20. speciale waarden als <code>true</code>, <code>false</code>, <code>yes</code>,
  21. <code>no</code>, en <code>null</code> worden behandeld.
  22. </para>
  23. </note>
  24. <note>
  25. <title>Key scheider</title>
  26. <para>
  27. Standaard, is de punt (<code>.</code>) het teken om keys te scheiden. Dit kan worden gewijzigd, door
  28. de <code>$config</code> key <code>'nestSeparator'</code> te wijzigen als je een nieuwe
  29. <code>Zend_Config_Ini</code> object aanmaakt. Als voorbeeld:
  30. <programlisting role="php"><![CDATA[<?php
  31. require_once 'Zend/Config/Ini.php';
  32. $config['nestSeparator'] = ':';
  33. $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $config);]]>
  34. </programlisting>
  35. </para>
  36. </note>
  37. <example id="zend.config.adapters.ini.example.using">
  38. <title>Zend_Config_Ini gebruiken</title>
  39. <para>
  40. Dit voorbeeld illustreert een basisgebruik van <code>Zend_Config_Ini</code> voor het
  41. inladen van configuratiedata vanuit een INI bestand. In dit voorbeeld vind je
  42. configuratiedata voor zowel een productiesysteem als een preproductiesysteem. Omdat
  43. de preproductiesysteem configuratiedata sterk overeenkomt met de productieserver
  44. configuratiedata, erft de preproductieserver sectie van de productie sectie. In dit
  45. geval is de beslissing willekeurig en zou dit andersom kunnen worden geschreven, de
  46. productieserver sectie zou erven van de preproductieserver sectie, alhoewel het niet
  47. het geval zou kunnen zijn in meer complexe situaties. Veronderstel dan dat de volgende
  48. configuratiedata in <code>/path/to/config.ini</code> staat:
  49. </para>
  50. <programlisting role="ini"><![CDATA[; Configuratiedata voor productieserver
  51. [productie]
  52. webhost = www.example.com
  53. database.type = pdo_mysql
  54. database.host = db.example.com
  55. database.username = dbuser
  56. database.password = secret
  57. database.name = dbname
  58. ; Preproductieserver configuratiedata erft van productieserver en
  59. ; overschrijft waarden waar nodig
  60. [preproductie : productie]
  61. database.host = dev.example.com
  62. database.username = devuser
  63. database.password = devsecret]]></programlisting>
  64. <para>
  65. Veronderstel vervolgens dat de programmeur de preproductie configuratiedata van het
  66. INI bestand nodig heeft. Het is eenvoudig om die data in te laden door het INI bestand
  67. en de preproductie sectie te specifiëren:
  68. </para>
  69. <programlisting role="php"><![CDATA[<?php
  70. require_once 'Zend/Config/Ini.php';
  71. $config = new Zend_Config_Ini('/path/to/config.ini', 'preproductie');
  72. echo $config->database->host; // geeft "dev.example.com"
  73. echo $config->database->name; // geeft "dbname"]]></programlisting>
  74. </example>
  75. <note>
  76. <table id="zend.config.adapters.ini.table">
  77. <title>Zend_Config_Ini Constructor parameters</title>
  78. <tgroup cols="2">
  79. <thead>
  80. <row>
  81. <entry>Parameter</entry>
  82. <entry>Opmerking</entry>
  83. </row>
  84. </thead>
  85. <tbody>
  86. <row>
  87. <entry><code>$filename</code></entry>
  88. <entry>Het ini bestand wat geladen moet worden</entry>
  89. </row>
  90. <row>
  91. <entry><code>$section</code></entry>
  92. <entry>
  93. De sectie binnen het ini bestand dat geladen moet worden.
  94. Door deze parameter de waarde null te geven, worden alle secties geladen.
  95. Verder kan een array van sectie namen worden meegegeven om meerdere secties
  96. te laden.
  97. </entry>
  98. </row>
  99. <row>
  100. <entry><code>$config = false</code></entry>
  101. <entry>Configuratie array. De volgende keys worden ondersteund:
  102. <itemizedlist>
  103. <listitem><para><emphasis>allowModifications</emphasis>: Zet deze op true om wijzigingen toe te staan in het geladen bestand. Standaard is dit false.</para></listitem>
  104. <listitem><para><emphasis>nestSeparator</emphasis>: Hiermee kan je aangeven welk teken gebruikt moet worden als key scheider. Standaard is dit "."</para></listitem>
  105. </itemizedlist>
  106. </entry>
  107. </row>
  108. </tbody>
  109. </tgroup>
  110. </table>
  111. </note>
  112. </sect1>
  113. <!--
  114. vim:se ts=4 sw=4 et:
  115. -->