| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15617 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.ini">
- <title>Zend_Config_Ini</title>
- <para>
- <classname>Zend_Config_Ini</classname> ermöglicht es Entwicklern, Konfigurations-Daten in
- einem vertrauten INI-Format zu speichern und sie mit einer Syntax auszulesen, die dem
- Zugriff auf die Eigenschaften verschachtelter Objekte entspricht. Das verwendete INI-Format
- bietet einerseits die Möglichkeit, Konfigurations-Daten hierarchisch abzulegen und
- andererseits Vererbung zwischen Sektionen zu spezifizieren. Konfigurations-Daten-Hierarchien
- werden durch das Trennen der Schlüsselwörter durch einen Punkt (<code>.</code>). Eine
- Sektion kann eine andere Sektion erweitern oder beerben indem man nach dem Sektionsname
- einen Doppelpunkt (<code>:</code>) notiert, gefolgt vom Namen der zu beerbenden Sektion.
- </para>
- <note>
- <title>Die Ini Datei parsen</title>
- <para>
- <classname>Zend_Config_Ini</classname> verwendet die PHP-Funktion
- <ulink url="http://php.net/parse_ini_file"><code>parse_ini_file()</code></ulink>. Deren
- Dokumentation klärt über spezielle Verhaltensweisen auf, die sich auch auf
- <classname>Zend_Config_Ini</classname> auswirken, z. B. wie die besonderen Werte
- <code>true</code>, <code>false</code>, <code>yes</code>, <code>no</code> und
- <code>null</code> gehandhabt werden.
- </para>
- </note>
- <note>
- <title>Schlüssel Trenner</title>
- <para>
- Standardmäßig ist das Schlüssel Trennzeichen der Punkt (<code>.</code>). Dies kann
- geändert werden, indem der <code>$options</code> Schlüssel <code>'nestSeparator'</code>
- geändert wird, wenn das <classname>Zend_Config_Ini</classname> Objekt instanziert wird.
- Zum Beispiel:
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $config = new Zend_Config_Ini('/path/to/config.ini',
- 'staging',
- $options);
- ]]></programlisting>
- </para>
- </note>
- <example id="zend.config.adapters.ini.example.using">
- <title>Zend_Config_Ini benutzen</title>
- <para>
- Dieses Beispiel zeigt die grundlegende Nutzung von
- <classname>Zend_Config_Ini</classname> um Konfigurations-Daten aus einem XML-File zu
- laden. In diesem Beispiel gibt es Konfigurations-Daten für ein Produktiv- und ein
- Staging-System. Da sich die Daten für das Staging-System nur unwesentlich von denen für
- das Produktiv-System unterscheiden, erbt das Staging-System vom Produktiv-System. In
- diesem Fall ist die Entscheidung darüber, welche Sektion von welcher erben soll,
- willkürlich und es könnte auch anders herum gemacht werden. In komplexeren Fällen ist
- das möglicherweise nicht der Fall. Nehmen wir also an, dass sich die folgenden
- Konfigurations-Daten in der Datei <code>/path/to/config.ini</code> befinden:
- </para>
- <programlisting language="ini"><![CDATA[
- ; Konfigurations-Daten für die Produktiv-Site
- [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
- ; Konfigurations-Daten für die Staging-Site, erbt von der Produktion
- ; und überschreibt Werte, wo nötig
- [staging : production]
- database.params.host = dev.example.com
- database.params.username = devuser
- database.params.password = devsecret
- ]]></programlisting>
- <para>
- Nehmen wir weiterhin an, dass der Anwendungs-Entwickler die Staging-Konfiguration aus
- diesem INI-File benötigt. Es ist ein Leichtes, diese Daten zu laden, es muss nur das
- INI-File und die Staging-Sektion spezifiziert werden:
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
- echo $config->database->params->host; // Ausgabe "dev.example.com"
- echo $config->database->params->dbname; // Ausgabe "dbname"
- ]]></programlisting>
- </example>
- <note>
- <table id="zend.config.adapters.ini.table">
- <title>Zend_Config_Ini Kontruktor Parameter</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Parameter</entry>
- <entry>Notizen</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><code>$filename</code></entry>
- <entry>The INI Datei die geladen wird.</entry>
- </row>
- <row>
- <entry><code>$section</code></entry>
- <entry>Die [section] innerhalb der ini Datei die geladen wird. Das Setzen dieses
- Parameters auf null lädt alle Sektionen. Alternativ, kann ein Array von
- Sektionsnamen übergeben werden um mehrere Sektionen zu laden.</entry>
- </row>
- <row>
- <entry><code>$options = false</code></entry>
- <entry>Options Array. Die folgenden Schlüssel werden unterstützt:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>allowModifications</emphasis>: Auf true gesetzt
- erlaubt es weiterführende Modifikationen der geladenen Datei.
- Standardmäßig auf false gestellt
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>nestSeparator</emphasis>: Auf das Zeichen zu setzen
- das als Abschnitts Separator verwendet wird. Standardmäßig auf
- "." gestellt
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </note>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|