Zend Framework: Konfigurationsdaten aus der application.ini lesen
Dennoch gibt es aber manchmal Fälle, in denen man sich in der Dokumentation verliert und einfach nicht mehr weiter kommt.
Einer dieser alltäglichen Fälle ist das Auslesen von Konfigurationsdaten aus der application.ini
Aber die offensichtliche Lösung über application.ini wird nicht behandelt.
Folgende Lösung funktioniert (zumindest mit der Version 1.9.0):
In der application.ini wird zunächst die gewünschte Konfiguration angelegt, in diesem Fall die Zugangsparameter zu einer MySQL-Datenbank:
-
db1.host = "someHost"
-
db1.dbname = "someDb"
-
db1.username = "someUser"
-
db1.password = "somePassword"
Im Controller, der die Konfigurationsdaten benötigt, wird die foldende Methode erstellt:
-
public function preDispatch() {
-
$bootstrap = $this->getInvokeArg('bootstrap');
-
$config = $bootstrap->getOptions();
-
-
'host' => $config['db1']['host']
-
,'dbname' => $config['db1']['dbname']
-
,'username' => $config['db1']['username']
-
,'password' => $config['db1']['password']);
-
-
parent::preDispatch();
-
}
Aus dieser Methode geht hervor, dass wir ein (per Konvention) privates Attribut _db1config im Controller anlegen müssen mit Daten aus der application.ini über $bootstrap->getOptions() füttern.
Da diese Zugangsdaten zur Datenbank jetzt - natürlich rein zufällig - als Array vorliegen, können diese direkt weiterverwendet werden, z.B. so:
-
Zend_Db::factory('Mysqli', $this->_db1_config);