| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?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> ermöglicht es Entwicklern, Konfigurations-Daten in
- einem vertrauten <acronym>INI</acronym> Format zu speichern und sie mit einer Syntax
- auszulesen, die dem Zugriff auf die Eigenschaften verschachtelter Objekte entspricht. Das
- verwendete <acronym>INI</acronym> 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 (<emphasis>.</emphasis>). Eine Sektion kann eine andere
- Sektion erweitern oder beerben indem man nach dem Sektionsname einen Doppelpunkt
- (<emphasis>:</emphasis>) notiert, gefolgt vom Namen der zu beerbenden Sektion.
- </para>
- <note>
- <title>Die Ini Datei parsen</title>
- <para>
- <classname>Zend_Config_Ini</classname> verwendet die <acronym>PHP</acronym> Funktion
- <ulink
- url="http://php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></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
- "<constant>TRUE</constant>", "<constant>FALSE</constant>", "yes", "no" und
- "<constant>NULL</constant>" gehandhabt werden.
- </para>
- </note>
- <note>
- <title>Schlüssel Trenner</title>
- <para>
- Standardmäßig ist das Schlüssel Trennzeichen der Punkt (<emphasis>.</emphasis>). Dies
- kann geändert werden, indem der <varname>$options</varname> Schlüssel
- <property>nestSeparator</property> geändert wird, wenn das
- <classname>Zend_Config_Ini</classname> Objekt instanziert wird.
- Zum Beispiel:
- </para>
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $config = new Zend_Config_Ini('/path/to/config.ini',
- 'staging',
- $options);
- ]]></programlisting>
- </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 einer
- <acronym>INI</acronym> Datei 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
- <filename>/path/to/config.ini</filename> 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
- dieser <acronym>INI</acronym> Datei benötigt. Es ist ein Leichtes, diese Daten zu laden,
- es muss nur die <acronym>INI</acronym> Datei 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><varname>$filename</varname></entry>
- <entry>Die <acronym>INI</acronym> Datei die geladen wird.</entry>
- </row>
- <row>
- <entry><varname>$section</varname></entry>
- <entry>
- Die [section] innerhalb der <acronym>INI</acronym> Datei die geladen
- wird. Das Setzen dieses Parameters auf <constant>NULL</constant> lädt
- alle Sektionen. Alternativ, kann ein Array von Sektionsnamen übergeben
- werden um mehrere Sektionen zu laden.
- </entry>
- </row>
- <row>
- <entry>
- <varname>$options</varname> (Default <constant>FALSE</constant>)
- </entry>
- <entry>
- Options Array. Die folgenden Schlüssel werden unterstützt:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>allowModifications</property></emphasis>:
- Auf <constant>TRUE</constant> gesetzt erlaubt es
- weiterführende Modifikationen der geladenen
- Konfigurationsdaten im Speicher. Standardmäßig auf
- <constant>NULL</constant> gestellt
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>nestSeparator</property></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>
|