| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.introduction">
- <title>Einleitung</title>
- <para>
- <classname>Zend_Config</classname> wurde entworfen um den Zugriff auf und die Verwendung von
- Konfigurations-Daten zu vereinfachen. Es stellt diese Konfigurations-Daten innerhalb
- der Applikation über eine verschachtelte Objekt-Struktur zur Verfügung. Die
- Konfigurations-Daten können aus verschiedenen Datenquellen gelesen werden,
- die hierarchische Datenspeicherung unterstützen. Derzeit stellt
- <classname>Zend_Config</classname> mit <link
- linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link> und
- <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>
- Adapter für das Einlesen von Daten aus Textfiles zur Verfügung.
- </para>
- <example id="zend.config.introduction.example.using">
- <title>Zend-Config verwenden</title>
- <para>
- In der Regel geht man davon aus, dass Anwender eine der Adapter-Klassen wie
- <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link>
- oder <link
- linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>
- verwenden. Wenn die Konfigurations-Daten aber als <acronym>PHP</acronym> Array
- vorliegen, können diese auch einfach an den <classname>Zend_Config</classname>
- Constructor übergeben werden, um dann über die objektorientierte Schnittstelle auf sie
- zugreifen zu können:
- </para>
- <programlisting language="php"><![CDATA[
- // Gegeben ist ein Array mit Konfigurations-Daten
- $configArray = array(
- 'webhost' => 'www.example.com',
- 'database' => array(
- 'adapter' => 'pdo_mysql',
- 'params' => array(
- 'host' => 'db.example.com',
- 'username' => 'dbuser',
- 'password' => 'secret',
- 'dbname' => 'mydatabase'
- )
- )
- );
- // Erstelle das objektorientierte Interface zum Datenzugriff
- $config = new Zend_Config($configArray);
- // Gebe einen Eintrag aus (Ausgabe ist 'www.example.com')
- echo $config->webhost;
- // Konfigurations-Daten benutzen, um eine Datenbank-Verbindung her zu stellen
- $db = Zend_Db::factory($config->database->adapter,
- $config->database->params->toArray());
- // Alternative Verwendung: einfach das Zend_Config Objekt übergeben.
- // Zend_Db factory weiß wie es zu interpretieren ist.
- $db = Zend_Db::factory($config->database);
- ]]></programlisting>
- </example>
- <para>
- Wie das Beispiel oben zeigt, kann man über <classname>Zend_Config</classname> auf die
- Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften
- einer verschachtelten Objekt-Struktur.
- </para>
- <para>
- Zusätzlich zum objektorientierten Zugriff auf die Daten Werte hat
- <classname>Zend_Config</classname> <methodname>get()</methodname> welches den unterstützten
- Standardwert zurückgibt wenn das Daten Element nicht existiert. Zum Beispiel:
- </para>
- <programlisting language="php"><![CDATA[
- $host = $config->database->get('host', 'localhost');
- ]]></programlisting>
- <example id="zend.config.introduction.example.file.php">
- <title>Zend_Config mit einer PHP Konfigurationsdatei verwenden</title>
- <para>
- Es ist oft gewünscht eine reine <acronym>PHP</acronym> basierende Konfigurationsdatei
- zu verwenden. Der folgende Code zeigt wie das ganz einfach erreicht werden kann:
- </para>
- <programlisting language="php"><![CDATA[
- // config.php
- return array(
- 'webhost' => 'www.example.com',
- 'database' => array(
- 'adapter' => 'pdo_mysql',
- 'params' => array(
- 'host' => 'db.example.com',
- 'username' => 'dbuser',
- 'password' => 'geheim',
- 'dbname' => 'mydatabase'
- )
- )
- );
- ]]></programlisting>
- <programlisting language="php"><![CDATA[
- // Konfiguration konsumieren
- $config = new Zend_Config(require 'config.php');
- // Einen Konfigurationswert ausgeben (führt zu 'www.example.com')
- echo $config->webhost;
- ]]></programlisting>
- </example>
- </sect1>
|