Zend_Config

Einleitung

Zend_Config 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 Zend_Config mit Zend_Config_Ini und Zend_Config_Xml Adapter für das Einlesen von Daten aus Textfiles zur Verfügung.

Example #1 Zend-Config verwenden

In der Regel geht man davon aus, dass Anwender eine der Adapter-Klassen wie Zend_Config_Ini oder Zend_Config_Xml verwenden. Wenn die Konfigurations-Daten aber als PHP Array vorliegen, können diese auch einfach an den Zend_Config Constructor übergeben werden, um dann über die objektorientierte Schnittstelle auf sie zugreifen zu können:

  1. // Gegeben ist ein Array mit Konfigurations-Daten
  2. $configArray = array(
  3.     'webhost'  => 'www.example.com',
  4.     'database' => array(
  5.         'adapter' => 'pdo_mysql',
  6.         'params'  => array(
  7.             'host'     => 'db.example.com',
  8.             'username' => 'dbuser',
  9.             'password' => 'secret',
  10.             'dbname'   => 'mydatabase'
  11.         )
  12.     )
  13. );
  14.  
  15. // Erstelle das objektorientierte Interface zum Datenzugriff
  16. $config = new Zend_Config($configArray);
  17.  
  18. // Gebe einen Eintrag aus (Ausgabe ist 'www.example.com')
  19. echo $config->webhost;
  20.  
  21. // Konfigurations-Daten benutzen, um eine Datenbank-Verbindung her zu stellen
  22. $db = Zend_Db::factory($config->database->adapter,
  23.                        $config->database->params->toArray());
  24.  
  25. // Alternative Verwendung: einfach das Zend_Config Objekt übergeben.
  26. // Zend_Db factory weiß wie es zu interpretieren ist.
  27. $db = Zend_Db::factory($config->database);

Wie das Beispiel oben zeigt, kann man über Zend_Config auf die Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften einer verschachtelten Objekt-Struktur.

Zusätzlich zum objektorientierten Zugriff auf die Daten Werte hat Zend_Config get() welches den unterstützten Standardwert zurückgibt wenn das Daten Element nicht existiert. Zum Beispiel:

  1. $host = $config->database->get('host', 'localhost');

Example #2 Zend_Config mit einer PHP Konfigurationsdatei verwenden

Es ist oft gewünscht eine reine PHP basierende Konfigurationsdatei zu verwenden. Der folgende Code zeigt wie das ganz einfach erreicht werden kann:

  1. // config.php
  2. return array(
  3.     'webhost'  => 'www.example.com',
  4.     'database' => array(
  5.         'adapter' => 'pdo_mysql',
  6.         'params'  => array(
  7.             'host'     => 'db.example.com',
  8.             'username' => 'dbuser',
  9.             'password' => 'geheim',
  10.             'dbname'   => 'mydatabase'
  11.         )
  12.     )
  13. );
  1. // Konfiguration konsumieren
  2. $config = new Zend_Config(require 'config.php');
  3.  
  4. // Einen Konfigurationswert ausgeben (führt zu 'www.example.com')
  5. echo $config->webhost;

Zend_Config